我有一个包含以' '
示例File1
8 7 8 8 7 7 7
示例文件2
10 0 3 11 0 2 3 3 2 4 5 6 2 11
我想读取这些整数并将它们保存在整数数组中。
-->int array[for example File1]={8,7,8,8,7,7,7}
-->int array[for example File2]={10,0,3,11,0,2,3,3,2,4,5,6,2,11}
到目前为止我已经完成了这个代码......有人可以在这里帮忙吗?
#include <stdio.h>
int main() {
FILE *f1;
int i,counter=0;
char ch;
f1 = fopen("C:\\Numbers.txt","r");
while((ch = fgetc(f1))!=EOF){if(ch==' '){counter++; }}
int arMain[counter+1];
for(i=0; i<counter+1; i++) {
fscanf(f1, "%d", &arMain[i]);
}
for(i = 0; i <= counter+1; i++) {
printf("\n%d",arMain[i]);
}
return 0;
}
答案 0 :(得分:1)
每次从文件中读取内容时,指针都会移动一个位置。在您读取文件一次以计算整数数后,指针指向文件的末尾。
你必须倒回你的FILE指针,所以它会回到开始状态,你可以再次扫描以获得数字。
#include <stdio.h>
int main(){
FILE *f1;
int i,counter=0;
char ch;
f1 = fopen("nums.txt","r");
while((ch = fgetc(f1))!=EOF){if(ch==' '){counter++; }}
int arMain[counter+1];
rewind(f1); /* Rewind f1 */
for(i=0; i<counter+1; i++) {
fscanf(f1, "%d", &arMain[i]);
}
for(i = 0; i <= counter+1; i++) {
printf("\n%d",arMain[i]);
}
return 0;
}