写入文件时需要帮助换行
Need Help Getting New Line When Writing to File
我有 endl,但它没有进入我的文件,所以当我输入超过 1 行时,它都在记事本中的同一行。
我试过:
代码文件<<代码行;
代码文件 << endl;
我也尝试通过向其添加常量字符串来向字符串添加“\n”,但它不起作用。
//Writing Coded Lines to File:
if(codeFile)
{
//Relaying Feedback to User:
cout << "File has been successfully opened/created" << endl;
cout << "\nWriting to file..." << endl;
for(int i = 0; i < lines; i++)
{
//Getting Non-Coded Line from User:
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
cin.getline(line, length);
//Creating Copy of Line:
strcpy(cline, line);
//Gathering Line Length:
length = strlen(line);
//Coding Line:
codedLine = code(length, line, cline, sAlphabet);
//Coded Line Test
cout << codedLine;
//Writing to File:
codeFile << codedLine << endl;
}
}
//Closing File:
codeFile.close();
cout << "\nFile has now been closed";
}
Cygwin 模拟 POSIX 系统并使用 Unix 行尾,而不是 NotePad 理解的 Windows 行尾。
将 endl
替换为 '\n'
无济于事。 endl
是 '\n'
后跟流刷新。
最好的选择是使用不同的文件 reader,例如可以理解 Unix 行尾的写字板。备选方案是
- 将您的编译器工具链更改为不模拟 POSIX 操作系统的工具链,或者
- 暴力破解 Windows 以
\r\n
结尾的行,但这意味着您的代码在基于 Unix 的系统上将有类似的错误行结束问题。
我有 endl,但它没有进入我的文件,所以当我输入超过 1 行时,它都在记事本中的同一行。
我试过:
代码文件<<代码行; 代码文件 << endl;
我也尝试通过向其添加常量字符串来向字符串添加“\n”,但它不起作用。
//Writing Coded Lines to File:
if(codeFile)
{
//Relaying Feedback to User:
cout << "File has been successfully opened/created" << endl;
cout << "\nWriting to file..." << endl;
for(int i = 0; i < lines; i++)
{
//Getting Non-Coded Line from User:
cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
cin.getline(line, length);
//Creating Copy of Line:
strcpy(cline, line);
//Gathering Line Length:
length = strlen(line);
//Coding Line:
codedLine = code(length, line, cline, sAlphabet);
//Coded Line Test
cout << codedLine;
//Writing to File:
codeFile << codedLine << endl;
}
}
//Closing File:
codeFile.close();
cout << "\nFile has now been closed";
}
Cygwin 模拟 POSIX 系统并使用 Unix 行尾,而不是 NotePad 理解的 Windows 行尾。
将 endl
替换为 '\n'
无济于事。 endl
是 '\n'
后跟流刷新。
最好的选择是使用不同的文件 reader,例如可以理解 Unix 行尾的写字板。备选方案是
- 将您的编译器工具链更改为不模拟 POSIX 操作系统的工具链,或者
- 暴力破解 Windows 以
\r\n
结尾的行,但这意味着您的代码在基于 Unix 的系统上将有类似的错误行结束问题。