从文件中读取行时遇到问题
Having trouble reading lines from a file
我有一个文本文件'patient_info.txt',如下所示:
100 普拉纳贝什 2014/12/12 2014/12/15 Dr.Ajit_Mukherjee,Dr.Pramotesh_Halder AC02 肺结核
101 桑帕德 2014/3/01 2014/03/07 Dr.Sarbani_Ghosh GEN304,登革热
102 Sambit 2014/11/22 NA Dr.Vashkar_Ganguly GEN310 Liver_Malfunction
我需要将每一行作为输入并比较第一个字段。问题是我的代码不读取第一行之后的行,它进入无限循环。
代码是这样的:::
while(1)
{
cout<<"Enter patient Id to display the details:";
cin>>id;
while(1)
{
r=fscanf(fp,"%d %s %s %s %s %s",&patient_id,&name,&admit_date,&release_date,&doc_consulted,&details);
while( r != EOF)
{
cout<<name<<endl;
if( patient_id == id)
{
cout<<name<<" "<<doc_consulted<<endl;
found=1;
break;
}
else
r=fscanf(fp,"%d %s %s %s %s %s",&patient_id,&name,&admit_date,&release_date,&doc_consulted,&details);
}
if( !found)
cout<<"nInvalid Patient Id...Enter again....nn";
else
break;
}
if(found)
break;
}
我无法修复它。请帮忙....
r=fscanf(fp,"%d %s %s %s %s %s",&patient_id,&name,&admit_date,&release_date,&doc_consulted,&details);
应该是:
r=fscanf(fp,"%d %s %s %s %s %s", patient_id,name,admit_date,release_date,doc_consulted,details);
读取字符串时不需要&
。在这种情况下,fgets(char *string, int num, FILE *stream)
可能更合适,但这取决于您希望如何从文件中逐行读取。
还有一件事,尝试使用调试器单步执行 while 循环。查看 while 循环的一次迭代返回的内容可能会有所帮助。
相关文章:
- 编译包含字符串的代码时遇到问题
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 从其他类访问类时遇到问题
- 使用静态成员声明类时遇到问题
- C++ 填充数组时遇到问题
- 在将字符串放入字符串向量时遇到问题?
- 余数除法和不允许除以零 (c++) 时遇到问题
- 我在C++中使用 getline() 函数时遇到问题
- C++线程安全:如果只有一个线程可以写入非原子变量,但多个线程从中读取. 会遇到问题吗?
- 在我的四叉树实现中遇到问题
- 在 c++ 中循环遍历数组时遇到问题
- 使用 MinGW 在 Windows 上构建 GLEW 时遇到问题
- 编译 Cilk Plus 程序时遇到问题
- 存储另一个函数返回的布尔数组时遇到问题
- 我在 OpenGL 中显示图像时遇到问题
- 我在解决此错误时遇到问题.我正在努力在主函数中传递数组
- 在 for 循环中更新两个变量时遇到问题C++
- 为什么我的程序在打开网络设备时遇到问题
- 在 Tensorflow C++ 中使用 FIFOQueue 时遇到问题
- 为什么我在虚幻引擎中的多态性和接口方面遇到问题?