尝试将整数写入文件中生成C语言中的随机字符

发布于 2025-01-11 09:58:35 字数 1107 浏览 0 评论 0原文

我正在尝试用 C 语言制作随机 input.txt 文件生成器,但我不断在输出文件中获取随机字符。我尝试同时使用 putw() 和 fwrite() 但得到相同的结果。

    for(int i = 0; i < 100; i++){
        ran_numb = rand()%(ram_size-1);
        // printf("%d", ran_numb);
        // int err = putw(ran_numb, fp);
        fwrite(&ran_numb, sizeof(int), 1, fp);
        fputc('\n', fp);
    }

输出文件:

~   
ô  
  
u   
?  
  
  
   
{  
ø  
  
È   
Õ   
å  
    
×  
¡  

完整代码:

#include <stdio.h>
#include <string.h>

int main (int argc, char* argv){
    generate_input_file(2048);

}

void generate_input_file(int ram_size){
    int ran_numb = 0;
    FILE *fp = fopen("input.txt", "w");;

    if(fp == NULL){
        printf("can't open file!");
    }

    for(int i = 0; i < 100; i++){
        ran_numb = rand()%(ram_size-1);
        // printf("%d", ran_numb);
        // int err = putw(ran_numb, fp);
        fwrite(&ran_numb, sizeof(int), 1, fp);
        fputc('\n', fp);
    }


}

I'm trying to make a random input.txt file generator in C language but I keep getting random characters in the output file. I tried using both putw() and fwrite() but I get the same result.

    for(int i = 0; i < 100; i++){
        ran_numb = rand()%(ram_size-1);
        // printf("%d", ran_numb);
        // int err = putw(ran_numb, fp);
        fwrite(&ran_numb, sizeof(int), 1, fp);
        fputc('\n', fp);
    }

output file:

~   
ô  
  
u   
?  
  
  
   
{  
ø  
  
È   
Õ   
å  
    
×  
¡  

full code:

#include <stdio.h>
#include <string.h>

int main (int argc, char* argv){
    generate_input_file(2048);

}

void generate_input_file(int ram_size){
    int ran_numb = 0;
    FILE *fp = fopen("input.txt", "w");;

    if(fp == NULL){
        printf("can't open file!");
    }

    for(int i = 0; i < 100; i++){
        ran_numb = rand()%(ram_size-1);
        // printf("%d", ran_numb);
        // int err = putw(ran_numb, fp);
        fwrite(&ran_numb, sizeof(int), 1, fp);
        fputc('\n', fp);
    }


}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

温柔女人霸气范 2025-01-18 09:58:35

在评论的帮助下,这是最终的程序:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <errno.h>

#include "simulator.h"

int main (int argc, char* argv){
    generate_input_file(2048);
}

void  Gen_Input_File(int ram_size){
    int ran_numb = 0;
    const char filename[] = "input.txt"

    FILE *fp = fopen(filename, "w");;
    if(fp == NULL){
        fprintf(stderr, "Failed to open file '%s' for writing: %s\n", filename, strerror(errno));
        exit(EXIT_FAILURE);
    }

    srand(time(NULL));
    for(int i = 0; i < 10000; i++){
        ran_numb = rand()%(ram_size-1);
        fprintf(fp, "%d\n", ran_numb);
    }

}

我添加了缺少的标题以停止警告。

After the help of the comments, this is the final program:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <errno.h>

#include "simulator.h"

int main (int argc, char* argv){
    generate_input_file(2048);
}

void  Gen_Input_File(int ram_size){
    int ran_numb = 0;
    const char filename[] = "input.txt"

    FILE *fp = fopen(filename, "w");;
    if(fp == NULL){
        fprintf(stderr, "Failed to open file '%s' for writing: %s\n", filename, strerror(errno));
        exit(EXIT_FAILURE);
    }

    srand(time(NULL));
    for(int i = 0; i < 10000; i++){
        ran_numb = rand()%(ram_size-1);
        fprintf(fp, "%d\n", ran_numb);
    }

}

I've added the missing headers to stop warnings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文