在我简单的impl中。我想读取cpp文件的所有行
FILE * pFile;
fopen_s(&pFile,"test.cpp","r+");
if (pFile!=NULL)
{
fputs ("fopen example", pFile);
char str [200];
while (1) {
if (fgets(str, 200, pFile) == NULL) break;
puts(str);
}
fclose (pFile);
}
我的text.cpp包含:
Testline1
Testline2
Testline3
Testline4
作为输出我得到不可读的字符:
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
我的代码出了什么问题?
我的想法是搜索一行特殊代码,然后在
上进行编辑答案 0 :(得分:4)
当文件打开以进行更新时,如果您想在写完后阅读 2 ,则需要调用fflush 1 。所以在这里写入文件后调用它:
fputs ("fopen example", pFile);
1 (引自ISO / IEC 9899:201x 7.21.5.3 fopen功能7)
但是,如果没有输入,输出不应直接输入
干预调用fflush函数或文件定位函数(fseek,
fsetpos,或倒带)
2 输出正在写入文件,输入正在读取文件。
答案 1 :(得分:-2)
此代码应该实现您的目标:
#include <stdio.h>
#define MAX_LINE 1024
int main(int argc, char *argv[])
{
FILE *pFile;
char buf[MAX_LINE];
fopen_s(&pFile, "test.cpp", "r");
if (pFile == NULL)
{
printf("Could not open file for reading.\n");
return 1;
}
while (fgets(buf, MAX_LINE, pFile))
{
printf("%s", buf);
}
fclose(pFile);
}