如何在 C++ 中读取带空格的文件?
How to read a file with spaces in C++?
我上周开始在大学学习 C++ 类。目前我只知道一些 C 语言,这让我在学习 C++ 时有点困惑。我有这个练习说:
"Write and use the fstream library to read a text file. The function should write on the screen each text line read of the file (with spaces)."
我写了下面的代码,可以写行但没有空格。我也听说过getline,但是我不知道怎么用,编译器总是说"no matching function for call to getline".
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
file_read(){
ifstream origem;
origem.open("ficheiro.txt");
if (!origem) {
cerr << "Error" << endl;
return -1;
}
char outp[100];
while(!origem.eof() ){
origem >> outp;
cout << outp;
}
return 0;
}
例如:如果我在ficcheiro.txt
"My dog has a bone"中有,程序会写成"Mydoghasabone"
所以我尝试了 getline:
...
ifstream origem;
origem.open("ficheiro.txt");
if (!origem) {
cerr << "Error" << endl;
return -1;
}
char outp[100];
getline(origem, outp);
origem >> outp;
cout << outp;
return 0;
}
编译器说:[错误] 没有匹配函数来调用 'getline(std::ifstream&, std::char [100])'
我的问题只是读取包含空格的文件!
我在学习 C++ 时也遇到了一些麻烦,我开始学习 'Classes' 并使用 CMD,但我什至不知道我在学习什么。你知道我在哪里可以用更容易理解的方式学习 C++ 吗?
试试这个
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int file_read()
{
ifstream origem;
origem.open("ficheiro.txt");
if (!origem) {
cerr << "Error" << endl;
return -1;
}
char outp[100];
while( origem.getline(outp,100) )
cout << outp;
return 0;
}
int main()
{
file_read();
}
The compiler said:[Error] no matching function for call to 'getline(std::ifstream&, std::char [100])'
如果您想使用 getline() 将输出从字符更改为字符串,例如
string outp;
while( getline(origem,outp))
cout << outp;
因为 getline() 用于 string
.
我上周开始在大学学习 C++ 类。目前我只知道一些 C 语言,这让我在学习 C++ 时有点困惑。我有这个练习说: "Write and use the fstream library to read a text file. The function should write on the screen each text line read of the file (with spaces)."
我写了下面的代码,可以写行但没有空格。我也听说过getline,但是我不知道怎么用,编译器总是说"no matching function for call to getline".
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
file_read(){
ifstream origem;
origem.open("ficheiro.txt");
if (!origem) {
cerr << "Error" << endl;
return -1;
}
char outp[100];
while(!origem.eof() ){
origem >> outp;
cout << outp;
}
return 0;
}
例如:如果我在ficcheiro.txt
"My dog has a bone"中有,程序会写成"Mydoghasabone"
所以我尝试了 getline:
...
ifstream origem;
origem.open("ficheiro.txt");
if (!origem) {
cerr << "Error" << endl;
return -1;
}
char outp[100];
getline(origem, outp);
origem >> outp;
cout << outp;
return 0;
}
编译器说:[错误] 没有匹配函数来调用 'getline(std::ifstream&, std::char [100])'
我的问题只是读取包含空格的文件!
我在学习 C++ 时也遇到了一些麻烦,我开始学习 'Classes' 并使用 CMD,但我什至不知道我在学习什么。你知道我在哪里可以用更容易理解的方式学习 C++ 吗?
试试这个
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int file_read()
{
ifstream origem;
origem.open("ficheiro.txt");
if (!origem) {
cerr << "Error" << endl;
return -1;
}
char outp[100];
while( origem.getline(outp,100) )
cout << outp;
return 0;
}
int main()
{
file_read();
}
The compiler said:[Error] no matching function for call to 'getline(std::ifstream&, std::char [100])'
如果您想使用 getline() 将输出从字符更改为字符串,例如
string outp;
while( getline(origem,outp))
cout << outp;
因为 getline() 用于 string
.