使用 std::string.compare() 将不起作用
Using std::string.compare() won't work
我有一个小问题与以下代码:
std::string compare = "data_END";
while ((!(temp.compare(compare) == 0)) && std::getline(file, temp)) {
std::size_t pos = temp.find(' ');
std::string name = temp.substr(0,pos);
std::string number = temp.substr(pos);
…
所以,在文件中有一个点,有一行叫做"data_END"。正如我在调试选项中看到的那样,它被正确读取。然而,.compare()方法不会返回0。当我使用visual Studio时,我也可以看到细节,除了容量之外,字符串之间的一切似乎都是一样的。温度是31,比较温度是15。这是他们之间的区别吗?我一个人走不动了,如果你能帮助我,我将不胜感激。
谢谢你们了!:)
试着重写这个语句:)
while ((!(temp.compare(compare) == 0)) && std::getline(file, temp)) {
while ( std::getline(file, temp) && !( temp.compare(compare) == 0) ) {
首先你必须读取字符串temp
中的一行文件,然后才将其与字符串compare
进行比较。
另一个问题可能是文本文件中的CR符号。也就是说,每一行以pair CR ('r') + LF ('n')结束。在这种情况下,你应该从字符串temp中删除它。
例如你可以写
while ( std::getline(file, temp) && !( temp.compare(0, compare.size(), compare) == 0) ) {
相关文章:
- 我的神经网络不起作用 [XOR 问题]
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- C++为什么尽管我调用了void函数,它却不起作用
- 为什么在保护模式下继承升级不起作用
- 循环在计数器中不起作用
- 在其他文件中创建类时在 c++ 项目中不起作用
- Visual studio代码重构似乎不起作用(例如,重命名符号-f2)
- 为什么二进制搜索在我的测试中不起作用
- 我的代码中有错误吗?使用BGI图形的C++代码对我不起作用
- 为什么 const std::p air<K,V>& 在 std::map 上基于范围的 for 循环不起作用?
- 带有指定长度字符* 参数的 std::regex_search 在 VS2017 中不起作用?
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 为什么简单的算术减法在"if"条件下不起作用?
- 为什么Stroustup书中的has_f不起作用
- 你能检查一下为什么在这个代码中从链接列表中删除项目不起作用吗
- 嵌套While循环不起作用(C++问题)
- C++Matching Brackets 2解决方案不起作用
- Compare string对cin不起作用
- 使用 std::string.compare() 将不起作用