【问题标题】:How to read data from files in Turbo c++ 4.0?如何从 Turbo c++ 4.0 中的文件中读取数据?
【发布时间】:2016-04-02 01:14:30
【问题描述】:

我是编程初学者,我正在尝试编写一个从文件中读取 2 个数字的代码,然后 将其显示在 turbo c++ 的输出窗口中。我的代码只读取第一个数字并产生不正确的输出 第二个号码。

 #include<iostream.h>
 #include<fstream.h>
 #include<conio.h>

void main()
{
  int x, y;
  clrscr();
  ifstream inFile;
  ofstream outFile;
  inFile.open("prac.txt");

  while(!inFile.eof())
  inFile >> x >> y;
  cout << x << " " << y;

  inFile.close();

 }

文件包含数字:23

输出:20

作为函数调用时的输出:2-28903 如果我将其作为函数调用,则与它在 main 中的情况相比,这是非常不同的,这是我应该做的 我只是在 main 中使用它来看看会发生什么。

抱歉,我们的老师希望我们学习 Turbo c++,所以我没有 真的可以选择编译器。

【问题讨论】:

  • 不要使用 Turbo C++,它不是 C++ 编译器,因为它比第一个 C+ 标准早了几十年。在上面的代码中可以看到很多非标准的东西:std namespace, void main(), iostream.h`...
  • 另外,不要重复发布相同的问题。

标签: c++ text-files turbo-c++


【解决方案1】:

std::cout 应该在 while 循环内:

while(!inFile.eof()){
     inFile >> x >> y;
     cout << x << " " << y;
}

【讨论】:

  • 文件里面有什么?你确定 2 和 3 之间有空格吗?
  • 只有数字是: 2 3 。是的,我敢肯定。我也尝试将 3 放在下一行,但我仍然得到 2 0 作为输出。
  • Turbo C++ 太旧以至于不能正常工作是合理的吗?
  • 也许可以,但我认为如果它可能无法正常工作,我们的教授不会强迫我们使用它。
  • @Euphemia:不应该指望你的教授,他使用 Turbo C++ 的事实就足以证明。该编译器甚至没有实现 1998 年的标准。它字面意思是上个世纪的编译器。
【解决方案2】:

尝试在这样的while循环条件中使用infile>>x>>y

while(infile>>x>>y)

然后在循环中使用 cout 语句。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-24
    • 1970-01-01
    • 2013-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多