首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >cout时cstring上的额外字符

cout时cstring上的额外字符
EN

Stack Overflow用户
提问于 2015-07-07 20:31:46
回答 5查看 494关注 0票数 2

我有一个char[4] dataLabel当我说

代码语言:javascript
运行
复制
wav.read(dataLabel, sizeof(dataLabel));//Read data label
cout << "Data label:" <<dataLabel <<  "\n";

我得到了输出Data label:data�,但是当我循环遍历每个字符时,我得到了正确的输出,这应该是“数据”。

代码语言:javascript
运行
复制
for (int i = 0; i < sizeof(dataLabel); ++i) {
    cout << "Data label " << i << " " << dataLabel[i] <<  "\n";
}

很大的回报4.我不知道问题是什么。

编辑:更让我困惑的是,从本质上讲,与我的程序早期相同的代码工作得非常完美。

代码语言:javascript
运行
复制
ifstream wav;
wav.open("../../Desktop/hello.wav", ios::binary);
char riff[4]; //Char to hold RIFF header

if (wav.is_open()) {
    wav.read(riff, sizeof(riff));//Read RIFF header
    if ((strcmp(riff, "RIFF"))!=0) { 
        fprintf(stderr, "Not a wav file");
        exit(1);
    }
    else {
        cout << "RIFF:" << riff << "\n";

这将按预期打印RIFF:RIFF

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31278690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档