我必须在它们之间输入带有空格的字符。例如,+ / 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';
答案 0 :(得分:0)
你非常接近
scanf(" %c", &ch);
来自docs:
空格字符:格式中的任何单个空白字符 string消耗所有可用的连续空白字符 输入(通过在循环中调用isspace来确定)。注意
"\n"
," "
,"\t\t"
或其他空格之间没有区别 格式为字符串。
如果你想跳过\n
以外的空白字符并继续逐个阅读(需要#include <cctype>
):
while (ch != '\n') {
scanf("%c", &ch);
if(!isspace(ch)) {
cout << (arr[i++] = ch);
}
}