我在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循环及其工作请帮助我?
答案 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;
}