使用 scanf("%c, &ch) 读取字符;

Read characters with scanf("%c, &ch);

本文关键字:ch 读取 字符 scanf 使用      更新时间:2023-10-16

我必须输入字符之间有空格。例如,+/8 7 - 9 'n'(当我按Enter时)然后我把它们写进一个字符数组中,像这样:+/89-9.

如何跳过这些空白?

我试着写点什么,但它不工作:

char *arr = new char[1000];
char ch;
scanf("%c", &ch);
int i = 0;
arr[0] = ch;
cout << arr[0];
while (ch != 'n') 
{
    //scanf("%c", &ch);
    scanf("%*[ ]%c", &ch);
    cout << (arr[i++] = ch);
}
arr[i++] = 'n';

你已经很接近了

scanf(" %c", &ch);

From the docs:

whitespace characters:格式中的任何单个空白字符中所有可用的连续空白字符输入(就像在循环中调用isspace一样)。请注意,""n""、"" ""、""tt""等空格无区别在格式字符串。

如果您想跳过n以外的空白字符并继续逐个阅读(需要#include <cctype>):

while (ch != 'n') {
    scanf("%c", &ch);
    if(!isspace(ch)) {
        cout << (arr[i++] = ch);
    }
}