具有获取函数的无限循环
Infinite loop with get function
谁能告诉我在这里使用 get 函数而不是 getline 有什么问题。Get 在读取一行时完美无休。为什么它在这里不起作用。它导致无限循环。
int main() {
ofstream outfile;
outfile.open("Myfile.txt", ios::trunc);
outfile <<"aabc"<<endl;
outfile <<"Hello Helloo"<<endl;
outfile <<"3abc"<<endl;
outfile <<"Somee text here "<<endl;
outfile.close();
ifstream infile;
infile.open("Myfile.txt");
char ch[20];
while(!infile.eof()) {
infile.get(ch,20);
cout<<ch;
}
infile.close();
return 0;
}
当用char*
调用时,就像在你的get(ch,20)
中一样,get
方法最多会读取 19 个字符或直到它到达分隔符(默认情况下n
(。
分隔字符显式不读取,因此它仍然是下一个字符。因此,当您第二次调用它时,无需执行任何操作来读取该字符,它会立即将 0 长度的字符串返回到相同的分隔符,一遍又一遍。
由于该行为是get
和getline
之间的关键区别,如果它不是您想要的行为,请不要使用它。
相关文章:
- 为什么这个递归函数会创建一个无限循环?
- 带有do函数的无限循环
- loop() 函数之外的无限循环
- 具有获取函数的无限循环
- C 递归函数无限循环
- 冰雹序列C 函数需要计算序列的长度.无限循环问题
- 无限构造函数循环
- 开关大小写语句中函数中的字符串输入会导致无限循环和绕过输入
- 实现递归函数,避免由 C++ 中 include 的循环调用(没有 #pragma 一次)引起的无限循环输入
- 当 c++ 布尔函数返回 true 时无限循环
- 第一个函数中的无限循环不知道如何解决
- 无限循环与做而函数
- eof() 函数不起作用 C++ 陷入无限循环
- 从模板类调用函数时形成的无限循环,请任何人解释
- C++字符串替换函数无限循环
- 有什么更有效的方法来确保我不会在这个快速排序函数中陷入无限循环?(C++)
- 这是一个具有基于数组的列表函数的数据结构项目,我似乎无法摆脱这个无限循环。
- C++中的二进制搜索函数返回无限循环
- 这个递归函数(回文)变成了一个无限循环
- 在具有静态对象的类的析构函数中使用 exit(),不会像预期的那样结束无限循环