【问题标题】:Reading input from a text file and outputting the text to the screen in c++从文本文件中读取输入并将文本输出到 C++ 中的屏幕
【发布时间】:2015-02-01 01:50:52
【问题描述】:

我是 C++ 语言的新学生,我无法理解……嗯,坦率地说,很多东西。我被分配了从文本文件中读取文本并将其输出到屏幕的任务,但我遇到了很多麻烦。我已经花了几个小时来研究和测试,这是我到目前为止得到的代码,但它不起作用,我不太确定为什么。任何人愿意与我分享的任何和所有帮助或见解都将非常感激。很抱歉,我不记得我在处理此问题时遇到的所有错误……但我向您保证,其中有很多。就像尝试在我的编译器中使用“fopen”......它不喜欢那样,所以我尝试了它建议的“fopen_s”,但后来它说它不再接受任何参数......然后我发现我需要在程序顶部添加“#define _CRT_SECURE_NO_DEPRECATE”作为头文件(?)文件,这个问题确实得到了解决,程序实际编译了......但是它给了我一个致命错误,不知道我是什么这样做太致命了,但你来了。请帮忙。

#define _CRT_SECURE_NO_DEPRECATE
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
    FILE *pf;
    char ch;
    pf = fopen("C:\\lowerCase\anyOldTextFile.txt", "r");
    feof(pf);
    if (pf == NULL)
    {
        printf("Unable to open the file.\n");
    }
    else
    {
        while (!feof(pf))
        {
            ch = fgetc(pf);
            printf("%c", ch);
        }
        fclose(pf);
    }
    system("pause");
}

【问题讨论】:

  • 除了帮助我完成这项工作之外,如果有人受到启发帮助我了解这一切是如何运作的,我将不胜感激。我不知道我真的理解了……很多东西。任何你愿意教我关于语言和/或语言这方面的东西,我都会非常感激。非常感谢。
  • 我建议只用谷歌搜索 C++ 文件 IO...这些都不是真正的 C++ 代码。您希望std::ifstream 打开文件并从中读取。
  • 这听起来像是 Visual Studio 警告。它们有自己的标准库函数的“更安全”版本,但您可以禁用检查。您应该将定义放在项目设置 > C/C++ > 预处理器 > 预处理器定义中。忽略这一点,您发布的代码会编译。
  • 获得一本好的 C++ 书籍。从随机的互联网论坛学习它是没有成效的。那里有很多非常糟糕的建议。
  • “无法打开文件”是可以想象的最无用的错误消息之一。 man perror

标签: c++ io text-files


【解决方案1】:

试试这个,我从this site粘贴的:

// reading a text file
#include <iostream>
#include <fstream>
#include <string>
using namespace std;

int main () {
  string line;
  ifstream myfile ("example.txt");
  if (myfile.is_open())
  {
    while ( getline (myfile,line) )
    {
      cout << line << '\n';
    }
    myfile.close();
  }

  else cout << "Unable to open file"; 

  return 0;
}

我没有测试这段代码,但它看起来不错。他们还解释了网站上的代码。我建议访问该页面并阅读所有内容。然后你应该能够理解它是如何工作的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2011-05-05
    • 1970-01-01
    相关资源
    最近更新 更多