gpt4 book ai didi

c++ - 在 C++ 中将多个数字读入单个有符号字符

转载 作者:行者123 更新时间:2023-11-28 01:54:43 27 4
gpt4 key购买 nike

所以我正在为一个简单的 codeforces 回合构建一个愚蠢的应用程序,并决定我想把我的晚上花在过度优化上。

所以我有以下代码,其中字符串“signed char”的每个实例最初都是“short”,现在我遇到的问题是我想使用 cin、逐个数字读取输入,并且一旦我使用 signed char 数据类型,cin 现在一次读取一个字符。

例如,如果输入是 (4\n33 44 11 22),cin 现在会将 number_of_men 设置为 (4) 并将 tmp 设置为 4 然后 3 然后 3 然后 4 而不是 33 然后 44 然后 11 然后 22。

如何让 cin 将文本的多个字符作为数字读取到 SINGLE signed char 变量中?

#include <iostream>
using namespace std;

int main ()
{
ios::sync_with_stdio(false);
signed char number_of_men;

cin >> number_of_men;
signed char tmp;
signed char max =0;
signed char max_loc=0;
signed char min = 101;
signed char min_loc=0;

for (signed char i=0; i < number_of_men; i++) {
cin >> tmp;
if(tmp > max)
{
max_loc = i;
max = tmp;
}
if(tmp <= min)
{
min_loc = i;
min = tmp;
}
}
cout << max_loc + number_of_men-1 -min_loc-(max_loc > min_loc)<< endl;
return 0;
}

最佳答案

cin 一次读取一个字符,因为您正在读取一个 char,您不能在一个 char 中存储多个字符,请使用一个 string 。如果你想读取一个数字并将其转换为 char,那么你需要读取一个 int 值并转换为 char:

int main(){
int char_code;
cin>>char_code;
char c = (char)char_code;
cout<<c;
}

此程序将输出 2 for 50,因为 50 在 ASCII 码中是 2(假设您使用ASCII)。

关于c++ - 在 C++ 中将多个数字读入单个有符号字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41607565/

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