我对C编程(尤其是文件处理)的经验很少。我正在开发一个项目,该项目应该在其中创建一个注册/登录系统。我有一个.csv文件,其中的数据由分隔,
我想做的是分别将第一和第二列读入两个char数组。
char userLogin[100];
char userPassword[100];
FILE *file3 = fopen("C:\\Users\\Kshitiz\\Desktop\\BAAS\\signup_db.csv","r");
if(file3 != NULL){
while(!feof(file3)){
fscanf(file3,"%[^,],%s",userLogin,userPassword);
puts(userLogin);
puts(userPassword);
}
}
fclose(file3);
signup_db.csv的内容:
Username,Password
SBI063DDN,Qazwsx1234
ICICIDDN456,WSXEDC1234r
预期产量:
Username
Password
SBI063DDN
Qazwsx1234
ICICIDDN456
WSXEDC1234r
我得到的输出:
Username
Password
SBI063DDN
Qazwsx1234
ICICIDDN456
WSXEDC1234r
WSXEDC1234r
谁能帮我解决这个问题?谢谢!
最佳答案
“ fscanf()”函数返回已成功填充的参数列表的项目数。因此,请尝试以下操作:
while(fscanf(file3,"%[^,],%s",userLogin,userPassword) == 2)
{
puts(userLogin);
puts(userPassword);
}
您提到的问题可能是由于文件末尾的换行符。阅读最后一行时,您尚未到达文件末尾。上面的代码解决了这个问题。