我正在用C语言编写一个程序,我正在从.txt文件中读取数据,我的目标是将.txt文件中的每个元素放入一个数组中。编译并运行程序时,返回值50,55和0。这些是ASCII值(我不确定为什么这些元素被存储为ASCII代码,但现在还可以),对于2,7和0(意味着自从我们到达.txt文件的末尾以来没有任何内容被初始化)。为什么我的程序从一开始就没有读取.txt文件?
...
int main(int argc, char *argv[]){
FILE *inputFile;
char *input = argv[1];
char magicSquareArray[257];
inputFile = fopen(input, "r");
if (inputFile == 0){
printf("Cannot open file for reading!\n");
return -1;
}
fscanf(inputFile, "%s", magicSquareArray);
while (!feof(inputFile)){
fscanf(inputFile, "%s", magicSquareArray);
}
printf("%i\n", magicSquareArray[0]);
int sideSize = magicSquareArray[0];
int squareSize = sideSize * sideSize;
printf("%i\n", squareSize);
fclose(inputFile);
文本文件:
3
4,3,8
9,5,1
2,7,6
答案 0 :(得分:0)
也许你想要的代码如下。 (但是,我想以下面的方式。 To prepare an array read the first number, To assign a numerical value to read into it.)
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
FILE *inputFile;
char *input = argv[1];
char magicSquareArray[257];
int ch, len;
inputFile = fopen(input, "r");
if (inputFile == 0){
printf("Cannot open file for reading!\n");
return -1;
}
len = 0;
while((ch = fgetc(inputFile)) != EOF && len < sizeof(magicSquareArray)-1){
magicSquareArray[len++] = ch;
}
magicSquareArray[len] = 0;
fclose(inputFile);
printf("%c\n", magicSquareArray[0]);
int sideSize = atoi(magicSquareArray);
int squareSize = sideSize * sideSize;
printf("%i\n", squareSize);
return 0;
}