在 C++ 中将多个数字读入单个有符号字符
Reading multiple digits into a single signed char in C++
所以我正在为一个简单的 codeforces 回合构建一个愚蠢的应用程序,并决定我想把我的晚上花在过度优化上。
所以我有以下代码,其中字符串 "signed char" 的每个实例最初都是 "short",现在我遇到的问题是我想使用 cin, number 读取输入按数字,一旦我转到 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;
}
此程序将为 50
输出 2
,因为 50
在 ASCII 代码中是 2
(假设您使用 ASCII)。
你想要 int8_t 来自 <stdint.h>
.
cin
根据变量类型判断正确的读操作。 char 变量意味着您获得第一个字符。一个 int 变量意味着你得到第一个数字。
所以我正在为一个简单的 codeforces 回合构建一个愚蠢的应用程序,并决定我想把我的晚上花在过度优化上。
所以我有以下代码,其中字符串 "signed char" 的每个实例最初都是 "short",现在我遇到的问题是我想使用 cin, number 读取输入按数字,一旦我转到 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;
}
此程序将为 50
输出 2
,因为 50
在 ASCII 代码中是 2
(假设您使用 ASCII)。
你想要 int8_t 来自 <stdint.h>
.
cin
根据变量类型判断正确的读操作。 char 变量意味着您获得第一个字符。一个 int 变量意味着你得到第一个数字。