но когда я хочу напечатать целое слово с "% s", не будет работать?
Спецификатор формата %s
ожидает аргумент const char*
, а objetos[i][e]
- неттипа char*
, типа char
.Измените
for (i=1;i<=3;i++){
for (e=1;e<=4;e++){
printf("%s",objetos[i][e]);
}
на
for (i=1;i<=3;i++){
printf("%s",objetos[i]);
}
Также при сканировании это
scanf("%s",&objetos[i][e]);
неверно, используйте %c
вместо %s
здесь.
Например,
for (i=1;i<=3;i++){
for (e=1;e<=4;e++){
system("cls");
printf("Ingrese El Objeto Personal %i-%i: ",i,e);
scanf(" %c",&objetos[i][e]);
}
}
Примечание, индекс массива начинается с zero(0)
, а не one(1)
в C
.Может показаться, что вы помещаете данные в objetos[1]
и читаете из objetos[1]
, но по ошибке, если ваша программа когда-либо пытается прочитать из objetos[0]
, это создает проблему.
Лучше начать вращение петли с индекса 0th
.Например,
for (i=0;i<=3;i++){
for (e=0;e<=4;e++){
scanf(" %c",&objetos[i][e]); /* give the whitespace before %c to avoid buffer overrun */
}
}