使用FGET读取cpp文件的所有行
在我的简单解释中。我想读取cpp文件的所有行使用FGET读取cpp文件的所有行,c,fgets,C,Fgets,在我的简单解释中。我想读取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;
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);
}
my text.cpp包含以下内容:
Testline1
Testline2
Testline3
Testline4
作为输出,我得到无法读取的字符:
ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ
我的代码有什么问题
我的想法是搜索一行特殊的代码,然后在文件打开进行更新时对其进行编辑,如果您想在写入后读取2,则需要调用fflush1。因此,在写入文件后,请在此处调用它:
fputs ("fopen example", pFile);
1(引用自ISO/IEC 9899:201x 7.21.5.3 fopen功能7)
但是,输出后不得直接跟随输入,无需 对fflush函数或文件定位函数(fseek, fsetpos,或倒带)
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);
}
#包括
#定义最大行1024
int main(int argc,char*argv[])
{
文件*pFile;
char buf[MAX_LINE];
fopen_s(和pFile,“测试cpp”、“r”);
if(pFile==NULL)
{
printf(“无法打开文件进行读取。\n”);
返回1;
}
而(fgets(buf、MAX_线、pFile))
{
printf(“%s”,buf);
}
fclose(pFile);
}
它是什么:fputs(“fopen示例”,pFile)代码>?你为什么要写一个只为读而打开的文件?哦,我认为r+使它可读写?是的,你是对的r+
既可以读也可以写。不过,它是一个文件,你不应该把它写入你要读的文件中。正如我所记得的,对于文本文件,你不能通过阅读直接跟随写作。例如,需要在两者之间进行搜索。同时检查mode.FWIW,“r+”打开一个现有文件进行读写,“w+”打开一个空文件进行读写。任何现有内容都将被销毁。倒带(pFile);他做这项工作。感谢@2501M提供的信息。我的想法是搜索一行特殊的代码,稍后再编辑,并将输出写入同一个文件?