【发布时间】:2018-08-10 08:53:49
【问题描述】:
所以我对 C 非常陌生,我正在编写一个程序,该程序接受用户输入并将其分成两部分,即
>char beforeColon;
>char afterColon[35];
>user enters: "u:some stuff"
>beforeColon = 'u'
>afterColon = "some stuff"
基本上,我想将u 存储在一个char 变量中,将some stuff 存储在char 数组中,但到目前为止,我只能通过为@987654326 使用char 数组来实现它@也一样。我还想知道如果我将 beforeColon 更改为 int 是否会起作用,这样我就可以获取用户输入的 char 的 ASCII。
这是我的代码:
#include <stdio.h>
int main(void)
{
char afterColon[35];
char beforeColon[2];
int ASCII_of_bc;
scanf("%1s:%[^\n]s", beforeColon, afterColon);
ASCII_of_bc = beforeColon[0];
}
【问题讨论】:
-
你想达到什么目的?
-
"%1s" 将读取一个字符串,即附加一个空字符。因此
beforeColon变为['u', '\0']。改为读取单个字符:“%c”。 -
最后的
s在"%1s:%[^\n]s"中毫无用处。最好加上宽度限制 -->"%1s:%34[^\n]"