gpt4 book ai didi

c++ - ' ' seems to be treated as '\0'?

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:32 24 4
gpt4 key购买 nike

代码

我创建了以下程序:

#include <iostream>

void f(char v[])
{
for(char* p = v; *p != 0; p++)
{
std::cout << *p << std::endl;
}
}

int main()
{
std::cout << int(' ') << std::endl;
char c[256];
std::cin >> c;
f(c);
return 0;
}

编译器

我使用 GNU GCC 编译器在 Code::Blocks 中使用 -std=c++0x 标志(没有警告)进行编译。

问题

我遇到的问题是,如果我输入一个包含一个或多个空格的字符串(即“one and two”),那么只会打印第一个空格之前的字母(即'o'、'n'、'e ').

我尝试过的

唯一想到的是快速进行现实检查。我添加了这一行:

std::cout << "Val: " << int(' ') << std::endl;

而且,正如预期的那样,打印的值不是 0(因为很明显,它不是空的“\0”字符)...

我不确定我错过了什么。是不是该行:

std::cin >> c;

使用 ' ' 作为某种终止字符?

谢谢。

最佳答案

std::cin >> c;

只会读取一个由空格分隔的单词。这是所有 >>> 运算符的功能。

如果要读取整行,请改用 getline 函数。

关于c++ - ' ' seems to be treated as '\0'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14436804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com