C fprintf写多行到文件?

时间:2013-11-12 19:08:46

标签: c

我在Linux上有学校项目,我需要创建一个用户定义的文本文件,该文件在100-999之间有1000个随机数。

我设法通过使用数组创建用户定义的文件,我的代码没有错误,但是当我运行它时,我的文件中只有一个数字,但我想要使用1000个数字\ n但是它不起作用请帮我?

#include<stdio.h>
#define MAX 100

int main()
{
    FILE *fp;
    char dosya[MAX];
    printf("\nLütfen dosya adı giriniz:");
    scanf("%s",dosya);
    fp=fopen(dosya,"w");
    int i;
    for (i=0;i<1000;i++);
    {

        int sayi;

        sayi=rand()%999-100;
        fprintf(fp,"\n");
        fprintf(fp,"%d\n",sayi);
        fprintf(fp,"\n");
    }
    fclose(fp);
    return 0;
}

当我在我的文件中运行时,只有一个数字,所以我认为它一直在同一行写1000次(但有/ n)其余的我在哪里检查for循环及其工作请帮助我?

3 个答案:

答案 0 :(得分:9)

for循环后删除分号。

在所有1000次迭代后执行代码时,只有一次执行for循环后的块。

for (i=0;i<1000;i++);  
                    ^^   

答案 1 :(得分:3)

在C中,所有指令都以分号结束

你的“for”语句最后有一个分号,被解释为“无所事事”指令。

for (i=0;i<1000;i++);  

删除尾随分号,它将起作用。

答案 2 :(得分:1)

您正在创建它之后终止for循环。删除下面一行的分号。

for(i = 0; i <1000; i ++);

您的最终代码:

#include<stdio.h>
#define MAX 100

int main(){
FILE *fp;
char dosya[MAX];
printf("\nLütfen dosya adı giriniz:");
scanf("%s",dosya);
fp=fopen(dosya,"w");
int i;
for (i=0;i<1000;i++){ 
    int sayi;
    sayi=rand()%999;
    fprintf(fp,"\n");
    fprintf(fp,"%d\n",sayi);
    fprintf(fp,"\n");
}
fclose(fp);
return 0;

}