perry_lin 2019-07-24 15:08 采纳率: 100%
浏览 605
已采纳

ifstream读取错误,求解?

我不明白为什么会发生这样,求解!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

#include//bits/stdc++.h
#include//help.h
      cin>>name; 
            string c;
            ifstream filein14("情况.txt",ios::in);
             while(getline(filein14,c))
             {
                 length_word[flag]=c.length()-1;
                 debug(length_word[flag]);
                 flag+=1;
                 if(c==name)
                 {
                     flag2=1;
                     break;
                 }
             }

help.h的内容:

#include//bits/stdc++.h
using namespace std;
void debug(int a)
{
    cout<<a<<endl;
}
void debug(char a)
{
    cout<<a<<endl;
}
void debug(char* a)
{
    cout<<a<<endl;
}
void debug(string a)
{
    cout<<a<<endl;
}

情况.txt的内容(有部分中文乱码):

awdrgy
#1.0#3-3
dorothy
#2.2#0-0
sssusie
#1.0#3-0
ߴߴ
#1.0#4-0
perry
#4.0#7-2
Ʈ������
#4.0#7-0

输出:

8
7
6
7
6
7
3
7
4

解释:我输出了文件每行的长度
谁能告诉我为什么?

  • 写回答

3条回答 默认 最新

  • threenewbee 2019-07-24 15:19
    关注

    c在哪里定义的
    c == name
    如果c是char[]的话,应该用 strcmp 而不是 == 比较。

    还有你的问题是什么,乱码么?中文的编码是双字节的,你按照char去读写要小心。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable