1

我对 C++ 比较陌生,所以要温柔。我有一个要阅读的文本文件,但是当我阅读该文件时,它会跳过分隔单词之间的空格(空格)。

我试图带走尽可能多的垃圾代码,以便更容易阅读。

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

using namespace std;

int main(.....)
{
    ifstream in_file;
    string filename;
    string status;
    readStringToMem(in_file, status);

    cout << "Type in the filename :    ";
    getline(cin, filename);    
    in_file.open(filename);
    readStringToMem(in_file, status);
}

void readStringToMem(ifstream& in_file, string& string_value)
{
    string input_string;
    getline(in_file, input_string, '|');
    stringstream myInputStream(input_string);
    myInputStream >> string_value;
}

我的文件可能如下所示:

状态正常 | 100

但是当我阅读它时,它是这样的:

状态 100

提前致谢!任何帮助都会很棒!

4

1 回答 1

2

你太努力了,这个

void readStringToMem(ifstream& in_file, string& string_value)
{
    string input_string;
    getline(in_file, input_string, '|');
    stringstream myInputStream(input_string);
    myInputStream >> string_value;
}

应该是这个

void readStringToMem(ifstream& in_file, string& string_value)
{
    getline(in_file, string_value, '|');
}

简单得多,实际上 readStringToMem 是如此简单,我想知道是否值得将其放入一个单独的函数中。

我认为您可能对整数大小写感到困惑。在这种情况下,您必须将使用 getline 读取的字符串转换为整数。你可以使用 stringstream 来做到这一点。但在字符串情况下,您已经有一个字符串,因此无需进行转换,也不需要字符串流。

于 2013-04-17T21:27:32.787 回答