所以我在c ++中遇到了这个问题。
我打开一个文件并用char读取它并将其打印在屏幕上。
直到我将其添加到程序中它才能正常工作。
gr=0;
完整的计划:
int main()
{
int gr;
char *ch;
gr=0;//this causes the problem
FILE *fp;
fp=fopen("as.txt","r");
do
{
*ch=fgetc(fp);
cout<<*ch<<endl;
}
while (*ch!=EOF);
}
答案 0 :(得分:2)
char *ch;
*ch=fgetc(fp);
你创建了一个指针,但实际上你从来没有指向任何东西。
它似乎在没有gr=0
赋值的情况下工作是纯粹的机会,可能是导致内存中值的各种因素的结果。当您取消引用无效指针时,有时会出现分段错误,并且您只是默默地覆盖一些不属于您的内存,从而导致进一步的错误。
无论如何,我不知道你需要什么指针。当然只需声明一个char ch
并使用它。
答案 1 :(得分:0)
你的代码在我身上出错了。您可以尝试类似下面列出的代码。
#include <cstdio>
#include <iostream>
int main()
{
FILE *fp;
char c;
fp=fopen("str.cpp","r");
if(fp != NULL) {
do {
c=fgetc(fp);
std::cout << c << std::endl;
} while (c!=EOF);
}
}