如何从存储在任何其他结构e-g:.text文件中的文件中读取c ++中的数据

时间:2013-12-31 15:49:49

标签: c++

我必须从存储在计算机中的文本文件中读取c ++中的数据 然后根据空格对数据进行标记,以便每个单词成为一个单独的字符串

我已尝试过代码,但它不打印任何内容而不是黑色空白屏幕

 // basic file operations
 #include <iostream.h>
 #include <fstream.h>
 #include <conio.h>
 //using namespace std;

 int main ()
 {
       ofstream myfile;
       myfile.open ("example.txt");``
       myfile << "Writing this to a file.\n";
    // myfile.close();`
       getch();
       return 0;
 }

请帮助:(

4 个答案:

答案 0 :(得分:1)

您发布的代码不会尝试向标准输出(std::cout)写入任何内容。它打开一个文件(example.txt)并在其中写入“将其写入文件”,关闭文件,然后在退出程序之前等待按下按钮。您没有看到输出,因为您没有提供输出操作,也没有尝试从文件中读取任何内容。

答案 1 :(得分:1)

首先使用ifstream,因为您希望此文件作为输入而不是输出

第二,你发布的这段代码与这个问题有什么关系?

试试这个:

#include <string>
#include <iostream>
#include <fstream>

int main()
{
    std::ifstream file("example.txt");
    if (file.is_open())
    {
        std::string str;
        while (std::getline(file, token, ' '))
        {
           //here str is your tokenized string 
        }

    } else
    {
        std::cout << "Unable to open file";
    }

}

getline将获得下一个字符串,直到行尾或“满足”

答案 2 :(得分:0)

此代码写入文件...也许有C ++方法可以做到这一点,但strtok做了你描述的。

答案 3 :(得分:0)

在谷歌搜索后一分钟内发现:)

using namespace std;
string STRING;
ifstream myReadFile;
myReadFile.open("Test.txt");
char output[100];
if (myReadFile.is_open())
{
    while (!myReadFile.eof())
    {
        getline(myReadFile,STRING);
        cout << STRING;
    }
    myReadFile.close();
}

编辑:修复了这个问题并成功测试了它。