继承人到目前为止我的代码,基本上我阅读的文本文件,并试图通过线路输入的每一行保存到一个字符数组。文本文件被正确读取并保存到一个字符数组,然后我遍历并尝试将数字保存到int
。错误分析从文本文件c INT
*这是不是整个代码块,因为它是我的工作分配。提供的当前代码仅用于调试目的。
//takes input of file, saves it to array
char word[20];
scanf("%s", word);
//File to open
char line[10];
char number[10];
FILE *file;
file = fopen(word, "r");
if (file) {
while (fgets(line, sizeof(line), file)) {
printf("%s", line);
int i,j=0;
int parsedInt;
for(i=2; i<sizeof(line) && !isspace(line[i]); i++)
{
number[j] = line[i];
j++;
}
sscanf(number, "%d", &parsedInt);
printf("PARSED INT %d \n\n", parsedInt);
parsedInt = 0;
下面是一个示例输入文件,我已经处理了i
和d
,工作正常。
i 10
i 12
d 10
i 3
和继承人与这些数字
i 10
PARSED INT 10
i 12
PARSED INT 12
d 10
PARSED INT 10
i 3
PARSED INT 32
样本输出一个人能解释为什么上次输入给出了一个32而不是3中,而另一些得当?
'for(i = 2; i
'number'需要空值终止 – BLUEPIXY
如果您解析只有一个字符线什么'I = * 2 *;?I <的sizeof(线)&& isspace为(行* [I] *);!?'你会读到。坏数据 – LoztInSpace