fairylee83 发表于 2018-1-31 17:04:01

C++初级问题

刚开始学C++,看到小甲鱼的视频里有一段程序,我在实践时发现后面有一串莫明的数字,还请大神帮忙解释下程序哪里抄得不对,还是什么其他的原因?

#include<iostream>
using namespace std;
int main()
{
    const int SIZE=50;
    char buf;
    cout<<"please input a text:";
    cin.read(buf,20);
    cout<<"the num of the text is:"<<cin.gcount()<<endl;
    cout<<cout.write(buf,20);
    cout<<endl;

    return 0;
}

BngThea 发表于 2018-1-31 17:13:32

应该是你输入的时候输入太多导致输入输出流中还残留了一些数据

fairylee83 发表于 2018-1-31 17:30:10

BngThea 发表于 2018-1-31 17:13
应该是你输入的时候输入太多导致输入输出流中还残留了一些数据


不是输入太多哦。

EVAN_Yiu 发表于 2018-1-31 17:42:21

第7行代码修改成char buf = {'\0'};
试试行不行,如果行麻烦给个最佳回复

BngThea 发表于 2018-2-1 07:14:52

fairylee83 发表于 2018-1-31 17:30
不是输入太多哦。

也可能是读取的时候一直需要遇到'\0'才结束输出

fairylee83 发表于 2018-2-1 10:24:32

EVAN_Yiu 发表于 2018-1-31 17:42
第7行代码修改成char buf = {'\0'};
试试行不行,如果行麻烦给个最佳回复


{:5_96:} 还是不行。

FreedomZSX 发表于 2018-2-1 14:40:46

VS 2017cout << cout.write() 报错,直接 cout.write() 就行了吧

fairylee83 发表于 2018-2-1 16:48:39

FreedomZSX 发表于 2018-2-1 14:40
VS 2017cout


如您所说,cout<<write(buf,20)中的cout去掉,或者把后面的cout<<endl;去掉都可以。
页: [1]
查看完整版本: C++初级问题