我无法获得以下功能的预期输出。为什么我得到相同的字符串输出?
in.txt文件
-rw-r--r-- 1 air staff StructEx.cpp
-rw-r--r-- 1 air staff Struct2ex.cpp
drwxr-xr-x 3 air staff app.dSYM
-rw-r--r-- 1 air staff MyStruct.cpp
除外 - 从以上in.txt文件4页的内容打印第1列和列。像下面
-rw-r--r--StructEx.cpp
-rw-r--r--Struct2ex.cpp
drwxr-xr-xapp.dSYM
-rw-r--r--MyStruct.cpp
实际输出一些东西 -
-rw-r--r--tructEx.cpp
-rw-r--r--tructEx.cpp
-rw-r--r--tructEx.cpp
-rw-r--r--tructEx.cpp
上面的输出是错的,什么我下面的字符串流功能缺失英寸
void readingFromFile2(){
ifstream inputFile("in.txt");
string line;
stringstream entireLine;
char s = ' ';
string p1, p2, p3, p4, p5;
while(!inputFile.fail()){
getline(inputFile, line);
entireLine << line;
entireLine >> p1 >> s >> p2 >> s >> p3 >> s >> p4 >> s >> p5 ;
cout << p1 << p4 << endl ;
}
}
从重要的评论编辑,我想下面的功能更有意义,但还是一样的出去放
void readingFromFile2(){
ifstream inputFile("in.txt");
string line;
stringstream entireLine;
char s = ' ';
string p1, p2, p3, p4, p5;
char n ='\n';
while(getline(inputFile, line)){
entireLine << line;
entireLine >> p1 >> p2 >> p3 >> p4 >> p5 ;
cout << p1 << p4 << endl ;
}
}
更新 - 整个代码
#include <iostream>
#include <fstream>
#include <sstream>
using namespace std;
void readingFromFile2();
int main(){
readingFromFile2();
}
void readingFromFile2(){
ifstream inputFile("in.txt");
string line;
stringstream entireLine;
string p1, p2, p3, p4, p5;
while(getline(inputFile, line)){
entireLine << line;
entireLine >> p1 >> p2 >> p3 >> p4 >> p5 ;
cout << p1 << p2 << p3 << p3 << p4 << p5 << endl ;
}
}
现在是工作, 使用stringstream entireLine(line);
而不是entireLine << line;
除非你的教授是在使用了iostream的LIB坚持,让您的生活更轻松,并使用正则表达式。并且绝对不要在现实世界中使用C++ iostream库。他们很可怕。 (很明显) – EdH
将entireLine解析为字符串会跳过空格。尝试没有“s”字段。 – Rakurai
流已经解析了空的空间。通过提供's',他们不需要“额外的帮助”。 – PaulMcKenzie