我对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
提前致谢!任何帮助都会很棒!
答案 0 :(得分: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做到这一点。但是在字符串的情况下,你已经有了一个字符串,所以没有转换要做,也不需要stringstream。