所以,我必須創建一個程序來管理庫,而無需使用的#include長度的scanf(「%數[^ n]的,陣列[N] .struct)的字符串的
我的問題是在功能我用添加了一本書,我已經告訴用戶,如果他超出數組限制或不。你有什麼建議我做什麼?
我決定用scanf(" %NUMBER[^\n], libro[i].title)
這裏就是我有到目前爲止(在printf中,我基本上要求輸入作者和內容,或者我告訴用戶他超出了限制):
int main(int argc, char *argv[]){
int N, codice, i = 0, j = 0;
book Library[MAXlibri];
boolean ricerca, esito;
void InsertBook(book libro[], int i){
printf("Inserire il titolo del libro (max 50 caratteri)\n");
scanf(" %49[^\n]", libro[i].title);
if(sizeof(libro[i].title) > 50){
printf("Sono stati inseriti troppi caratteri quando si inseriva il titolo del libro\n");
}
printf("Inserire autore o autori (max 30 caratteri)\n");
scanf(" %29[^\n]", libro[i].auth);
if(sizeof(libro[i].auth) > 30){
printf("Sono stati inseriti troppi caratteri quando si inseriva l'autore\n");
}
printf("Inserire casa editrice (max 20 caratteri)\n");
scanf(" %19[^\n]", libro[i].editor);
if(sizeof(libro[i].editor) > 20){
printf("Sono stati inseriti troppi caratteri quando si inseriva la casa editrice\n");
}
printf("Inserire una breve descrizione (max 50 caratteri)\n");
scanf(" %49[^\n]", libro[i].descr);
if(sizeof(libro[i].descr) > 50){
printf("Sono stati inseriti troppi caratteri quando si inseriva la descrizione\n");
}
printf("Inserire genere letterario (max 20 caratteri)\n");
scanf(" %19[^\n]", libro[i].genre);
if(sizeof(libro[i].genre) > 20){
printf("Sono stati inseriti troppi caratteri quando si inseriva il genere letterario\n");
}
printf("Inserire codice numerico libro\n");
scanf("%d", &libro[i].code);
printf("Inserire anno di pubblicazione\n");
scanf("%d", &libro[i].year);
printf("Inserire numero pagine\n");
scanf("%d", &libro[i].pages);
if(sizeof(libro[i].title) < 50 && sizeof(libro[i].auth) < 30 && sizeof(libro[i].editor) < 20 && sizeof(libro[i].descr)<50 && sizeof(libro[i].genre) < 20){
printf("Libro inserito con successo!\n");
}
else{
printf("Il libro non e' stato inserito correttamente, riprovare\n");
}
}
你是什麼意思_「without'#include'」_?你不能在不包含'stdio.h'的情況下使用'scanf',並且你的格式可能是錯誤的:''%19 [^ \ n]「'讀到19是什麼?我拿你想要的東西''%19 [^ \ n] s「' – 2014-12-04 12:19:39
@EliasVanOotegem'」%19 [^ \ n] s「':'s'不是必需的。 – BLUEPIXY 2014-12-04 12:29:11
@BLUEPIXY:對,你......仍然沒有「#include」位很奇怪。 OP可能在沒有意識到的情況下依賴於gcc的auto-includes。 '-Wall -pedantic'標誌可能沒有在這裏使用 – 2014-12-04 12:33:00