【发布时间】:2014-01-31 18:37:31
【问题描述】:
我正在尝试扫描以下信息:
00abcabc:abc123
01defdef:def456
02hijhij:hij789
使用此代码分成两个数组:
FILE *dataLogin;
int i=0, numRecords;
char username[100][10], password[100][10];
dataLogin = fopen("login.dat", "r");
if (dataLogin == NULL){printf("Error");}
else {
while (fscanf(dataLogin, "%s:%s\n", username[i], password[i])){i++;}
fclose(dataLogin);
numRecords = i;
for(i = 0; i < numRecords; i++){printf("%s, %s\n", username[i], password[i]);}
}
printf("complete");
程序编译并运行,但不显示任何内容。我相信我已将故障隔离到 while 循环,但我被困在那里。谢谢!
【问题讨论】:
-
尝试检查来自
fscanf的返回 -
@Dmitri 如何解决这个问题?
-
更改您的
while条件以验证它是否返回 2,例如。(fscanf(...) == 2)而不仅仅是(fscanf(...))。只有读取 2 个字符串才会成功。
标签: c arrays file while-loop save