c++从txt文件读入字符到数组再输出就是乱码 5
intmain(){ifstreamfin("e://input.txt");ofstreamfout("e://output.txt");constintLINE_LE...
int main()
{
ifstream fin("e://input.txt");
ofstream fout("e://output.txt");
const int LINE_LENGTH = 100;
char str[LINE_LENGTH][7]={0};
fin.getline(str[0],7);//读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分
cout<<str;
for(int i=1;i<=str[0][0];i++)
{
fin.getline(str[i],7);
int code=output_code(str[i]);
cout<<code;
if (fout.is_open())
{
fout<<code;
}
}
}
在cout<<str;时候如果cout<<str[0];就是正确的2如果输出整个str就是第二张乱码图,是为什么啊? 展开
{
ifstream fin("e://input.txt");
ofstream fout("e://output.txt");
const int LINE_LENGTH = 100;
char str[LINE_LENGTH][7]={0};
fin.getline(str[0],7);//读取方式: 逐行读取, 将行读入字符数组, 行之间用回车换行区分
cout<<str;
for(int i=1;i<=str[0][0];i++)
{
fin.getline(str[i],7);
int code=output_code(str[i]);
cout<<code;
if (fout.is_open())
{
fout<<code;
}
}
}
在cout<<str;时候如果cout<<str[0];就是正确的2如果输出整个str就是第二张乱码图,是为什么啊? 展开
1个回答
展开全部
因为你的str是一个二维数组,二维数组又称矩阵。二维数组如int fun[3][3]={ {1,2,3},{4,5,6},{7,8,9} };这样的结构不是序列的,你无法在cout里面序列的显示出来。如果你想打印出来就需要把二维数组序列成一位数组。
追问
我在for循环里面
fin.getline(str[i],7);
cout<<str[i];
按理说应该输出一个字符a(我的txt文件里面第二行只有a),但是输出是2a26b26262626262626262626262626这样子,cout<<str[i]这样不是输出一维数组吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询