void docDB(){
int sdb = 0;
ifstream dacb("kitudacbiet.txt");
if(!dacb.is_open())
cout<<"Deo doc dc file"<<endl;
else{
while(!dacb.eof()){
dacb>>dbiet[sdb].kitu;
dacb>>dbiet[sdb].mota;
//getline(dacb,dbiet[sdb].mota);
/*
string a="";
while((dacb>>a)!= '\n'){
//strcat(dbiet[sdb].mota,a);
dbiet[sdb].mota+=a;
}
*/
sdb++;
}
}
}
Run Code Online (Sandbox Code Playgroud)
文本文件:"kitudacbiet.txt"
\ Dau xuyet phai
@ Dau @
# Dau #
$ Ky hieu $
( Dau mo ngoac
) Dau dong ngoac
Run Code Online (Sandbox Code Playgroud)

我希望将第一行字符串读入dbiet [sdb] .kitu,将其余行读入dbiet [sdb] .mota
示例:第1行=\Dau xuyet phai
dbiet [sdb] .kitu ="\"和dbiet [sdb] .mota ="Dau xuyet phai"
我想逐行阅读,直到遇到下线字符('\n').这该怎么做.对不起我的英语不好.谢谢
111*_*111 27
要从文件中读取整行到字符串,请使用std::getline如下:
std::ifstream file("my_file");
std::string temp;
std::getline(file, temp);
Run Code Online (Sandbox Code Playgroud)
您可以循环执行此操作直到文件结尾,如下所示:
std::ifstream file("my_file");
std::string temp;
while(std::getline(file, temp)) {
//Do with temp
}
Run Code Online (Sandbox Code Playgroud)
http://en.cppreference.com/w/cpp/string/basic_string/getline
http://en.cppreference.com/w/cpp/string/basic_string
看起来您正在尝试解析每一行。另一个答案向您展示了如何getline在循环中使用来分隔每一行。您将需要的另一个工具是istringstream, 分离每个令牌。
std::string line;
while(std::getline(file, line))
{
std::istringstream iss(line);
std::string token;
while (iss >> token)
{
// do something with token
}
}
Run Code Online (Sandbox Code Playgroud)