正在读取带有空格的txt(c++)
Reading a txt with spaces ( c++)
我正在尝试读取一个.txt文件,在我的文本文件中有数字,但也有路径文件夹(例如:"C:\Documents and Settings……")
我可以毫不费力地读取数字,但当我尝试读取路径时,我只读取到第一个"空格",这意味着,在这两种情况下,我都只读取"C:\Documents"。我能做什么?
//READING PARAMETERS FROM A .TXT FILE
//double sigma; double alpha; double tau;
//double miniter; double maxiter; double q; double m;
//‘R’ image folder ; ‘T’ image folder;
// input-file-stream
// - in = (input) open the file for reading
ifstream f ( "parametros.txt", ifstream::in ) ;
// Error if it is not open properly
if ( !f){
cout<<"ERROR OPENING THE FILE .TXT"<<endl;
exit(EXIT_FAILURE);
}
char *cadena = new char [100];
stringstream folder_T;
stringstream folder_R;
int iter = 1;
while ( !f.eof() ){
// reading the next line
f >> cadena ;
if ( iter == 1 ){
sigma = atof(cadena);
}
else if ( iter == 2){
alpha = atof(cadena);
}
else if ( iter == 3){
tau = atof(cadena);
}
else if ( iter == 4){
miniter = atof(cadena);
}
else if ( iter == 5){
maxiter = atof(cadena);
}
else if ( iter == 6){
q = atof(cadena);
}
else if ( iter == 7){
m = atof(cadena);
}
else if ( iter == 8){
folder_T<<gets(cadena); // Only “C:/Documents” is returned
}
else if ( iter == 9){
folder_R<<gets(cadena); // Only “C:/Documents” is returned
}
iter = iter + 1;
}// fin while
f.close();
您没有在cadena
中读取完整的一行。做这个
getline(f, cadena);
此外,您不应该使用gets()
。您可能已经在cadena
中拥有完整的行。
相关文章:
- 如何将 txt 文件中的行分隔为组件C++
- 在CMakeLists.txt的安装功能中使用.cmake文件有什么用
- 一种在C++中读取TXT配置文件的简单方法
- 如何修复此iFile以将.txt输出到控制台
- 无法打开.txt文件
- CMakeLists.txt中的命名空间表示法
- Arduino从Txt读取整数
- 如何使用CLion在Mac上创建一个新的.txt文件
- 如何拆分文件中.txt字母并使用c ++使用数组进行扑克?
- 使用fstream对txt文件中的数字进行循环
- Visual Studio在尝试读取resource.txt文件时崩溃
- 更正 CMakeList.txt 用于谷歌测试的文件?
- 如何从txt文件中读取多个不同长度的数组?
- 在一次迭代中从 txt 文件中读取多行
- 将生成文件转换为 CMakeLists.txt等效项
- 使用循环将多行写入.txt
- CMake 错误"源似乎不包含 CMakeLists.txt",路径/库连接问题
- C++/autoconf 等效于文档库要求.txt的要求是什么?
- 通过比较C++中的行在 txt 文件中搜索的最简单方法是什么?
- 如何在 Gnuplot 中分别绘制 2 个文件数据?我有一个文件"sin.txt",另一个文件"cos.txt",我想将它们分别绘制在一个图表上