我無法獲得以下功能的預期輸出。爲什麼我得到相同的字符串輸出?
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