不会使用 ifstream 读取空格
Won´t read whitespace with ifstream
我对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;
}
我的文件可能看起来像这样:
状态ok | 100
但是当我读它的时候,结果是这样的:
状态100
提前感谢!任何帮助都太好了!
你太努力了,这
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.
相关文章:
- 如何在C++中读取空格分隔的输入 当我们不知道输入的数量时
- 如何将以逗号和空格分隔的整数读取到 2D 数组中?
- 如何在 C++ 中从文件中读取字符数组(带有一些空格)
- 如何逐行读取文件,每行中的内容都用空格分隔并将其写入新文件中
- 如何在 QT 中从.txt文件中读取空格
- 我无法读取空格并使用 devc++ 输入 c++
- 读取空格会使解析器崩溃.为什么?
- 未读取空格
- 从文件中读取空格
- 读取空格将数字从文本文件分隔到整数数组 (C++)
- 字符串没有变蓝,只读取空格
- std::stringstream 不读取空格
- 从文件中读取空格分隔的数字
- 使用 getline() 读取空格不起作用
- 有没有一种不使用std::getline从文件中读取空格的方法?
- 从文件中读取空格分隔的数字,直到换行符
- 不会使用 ifstream 读取空格
- 从 ifstream 读取不会读取空格
- 使用sscanf从c++文件中读取空格分隔符
- 用空格数据读取空格分隔的数据