int main () {
char b[100];
for (int i = 1; i <= 10; i++ )
scanf ("%c%*c", b[i]);
}
但是我收到错误'格式arguemnt不是指针'
如何声明一个数组以从用户那里获取所有值?
编辑:
#include <cstdio>
#include <stdlib.h>
using namespace std;
int p[100], b, bc;
char bb[100];
int main () {
printf("Enter Count : ");
scanf ("%d", &bc);
for (b = 1; b <= bc; b++ ) {
printf("Enter a char and integer: ");
scanf ("%c%*c %d", &bb[b-1], &p[b-1]);
printf ("\n Your Entries => %c, %d", bb[b-1], p[b-1]);
}
return 0;
}
这是我的源代码。
答案 0 :(得分:3)
怎么样:
scanf("%c", &b[i]);
scanf()
需要知道变量的地址,以便它可以修改它。
答案 1 :(得分:2)
#include <cstdio>
显然,你是用C ++编写的
#include <stdlib.h>
哦!等待。毕竟是C语言 @coderex :下定决心使用的是哪种语言
using namespace std;
哦!这是C ++。 我的回答并未考虑我不知道的C ++细节。
int p[100], b, bc;
char bb[100];
如果可以避免使用全局变量,那么代码将更容易处理。
int main () {
printf("Enter Count : ");
scanf ("%d", &bc);
for (b = 1; b <= bc; b++ ) {
惯用法是for (b = 0; b < bc; b++)
。使用惯用方法,您不需要在循环内减去1来访问数组索引。
printf("Enter a char and integer: ");
// scanf ("%c%*c %d", &bb[b-1], &p[b-1]);
众所周知, scanf()
很难正确使用
无论如何,"%d"
转换说明符已经丢弃了空格,因此你可以删除奇怪的东西;还有一个来自上一次scanf
电话的待决状态。使用格式字符串中的空格可以摆脱它。
scanf (" %c%d", &bb[b-1], &p[b-1]);
printf ("\n Your Entries => %c, %d", bb[b-1], p[b-1]);
}
return 0;
}
玩得开心!
答案 2 :(得分:0)
错误是,在输入整数值后,它将“enter key”读作换行符。
为了避免这种情况,我使用了%* c scanf ("%c%*c %d%*c", &bb[b-1], &p[b-1]);