gpt4 book ai didi

c++ - 将 char 分配给 int 变量时的奇怪行为

转载 作者:行者123 更新时间:2023-11-30 03:01:50 25 4
gpt4 key购买 nike

给定这段代码:

#include <cstdio>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::string;

int main() {
int a;
string b;

cin >> a;
cin >> b;

return 0;
}

我尝试用 g++ 编译并运行它。将一个字符赋给a时,在第一个cin处,后面的指令好像被跳过了。

即使在最后两行之间添加两条 getchar() 指令,似乎也只有第二条 getchar() 被执行。有人可以准确地解释在低级别发生了什么,这似乎导致这些行明显未执行吗?

编辑:

使用此调试代码:

#include <cstdio>
#include <iostream>
#include <string>
using std::cin;
using std::cout;
using std::endl;
using std::string;

int main() {
int a;
string b;

cin >> a;
cin >> b;
cout << "a is "<< a << endl;
cout << "b is "<< b << endl;
getchar();

return 0;
}

输入1测试

输出是 1b 是测试* 没有执行 getchar *

输入1个测试

输出是 1b 是测试

输入测试

输出为 0b 是

输入

//跳过第二个 cin

输出为 0b是

注意:getchar() 一次都没有执行。

最佳答案

您可能在第一个字符后按了回车键。您没有任何代码来使用该输入,因此您得到一个空字符串。您的代码不需要在两个输入之间有任何分隔符,因此不要输入任何分隔符。

关于c++ - 将 char 分配给 int 变量时的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10716894/

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