【问题标题】:Getting error when reading from file从文件读取时出错
【发布时间】:2014-01-26 19:41:23
【问题描述】:

每当我尝试从文件中读取字符并尝试访问它时,都会出错。我的代码是:

while((c=fgetc(f))!=EOF) {
  if(c == '\n') {
    str[i]='\0';

    Info* inf = new Info();
    inf->getInputFromFile(str);
    if((table->insert(inf))==0)
    cout<<"exist."<<endl;
    //delete inf;

    for(int j =0; j<50;j++)
    str[j]='\0';

    i=0;

  } else {
    str[i] = c;
    i++;
}

但是在这里,每当我尝试给出一个虚拟词时,例如:inf-&gt;getInputFromFile("Hello"); 我没有收到任何错误。我也无法使用 debuggin 找到错误,因为当我按 F8(CodeBlocks IDE) 时,我的调试器启动并且它不会停止任何行。即我在使用 F8 运行程序时没有发现任何错误。

这里是输入文件内容:

int, INTEGER
myFunction, FUNCTION
x, IDENTIFIER
5, NUMBER
x, Identity
char, CHARACTER
fl, FLOAT
dbl, DOUBLE
you, MEINTHIS
dlt, DELETE
hel, HELLOWORLD
string, STRING

【问题讨论】:

  • 那我该怎么办。在 if 情况下,在 while 旁边使用 EOF?
  • 我应该改用这个:while(1){ c=fgetc(f));如果(c == EOF){中断; }
  • 你在哪里得到错误?
  • 问题中有太多遗漏的细节,为了检测手头的确切问题需要这些细节,所以只给你一些建议:1.函数fgetc返回一个@987654325 @,所以声明变量c,并在需要的地方将其转换为char(如果我没记错的话,EOFint,这可能会让你的while 循环永远运行)。 2. for 循环似乎没有任何意义。 3.你确定你已经打开了文件(f指向)进行阅读吗?
  • 你在这里做什么:Info* inf = new Info();? C 没有 new 关键字。编辑:好的,我明白了:您正在使用 C++。然后更新你的问题标签。

标签: c file-io char


【解决方案1】:

这里回答了如何用 C 语言读取文件:In C, how should I read a text file and print all strings 我认为这就是您正在寻找的答案。

【讨论】:

  • 我用过但问题依然存在
猜你喜欢
  • 2013-01-09
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多