【发布时间】:2025-12-25 10:20:18
【问题描述】:
我正在使用 C++ 读取文本文件。 因为我是 C++ 新手,所以我添加了一堆“cout”语句来查看事情的表现。 我得到了一个我找不到解释的输出,希望这里有人可以指出一些相关的文本。
- 我读了一行
- 打印该行
- 使用“substr()”打印“line”中的前 2 个字符
- 将该行复制到工作区(“mybuffer”)
- 打印我的工作区的子字符串,长度为 10 个字符
问题: (a) (3) 的输出似乎是一个转义序列(不可打印的字符)。如果我将子字符串的长度从 2 更改为 4,我会得到一个 /。 (b) 即使“mybuffer”的内容看起来正确(前两个字符确实是 //),子字符串函数只返回七个(可打印)字符。
while( std::getline( file, line ) )
{
foundeq = 0;
clearthis = 0;
mybuffer = line;
cout<< "line>>" << line<<"\n";
cout<<"first 2 chars in line>>"<<line.substr(0,2)<<"\n";
cout<< "mybuffer>>" << mybuffer<<"\n";
cout<<"first 10 chars in mybuffer>>"<<mybuffer.substr(0,10)<<"\n";
输出:
line>>//--------------------------------------------------
first 2 chars in line>>\357\273
mybuffer>>//--------------------------------------------------
first 10 chars in mybuffer>>//-----
发生了什么事??
提前感谢您的 cmets。
【问题讨论】: