Я новичок в программировании C, и мне было предложено создать простой разделитель строк, , который получает предложение от пользователя (в stdin) и снова печатает его в stdout (без сохранения всего предложения) и пропускает одну строку («\ n»), если были введены «@» или «*». (также они хотят, чтобы каждое предложение начиналось с номера строки). Я закончил программу, и она отлично работает, кроме одной мелочи: для каждого входа. Я пытаюсь, чтобы первая буква терялась. Остальное сделано, как и требовалось.разделитель строк от stdout до stdin
может ли кто-нибудь сказать мне, что не так?
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv) {
char cInput;
int i = 1;
int moreData = 1;
printf("line_splitter, please enter a sentence:\n");
fflush(stdout);
cInput = fgetc(stdin);
printf("%c: ", i);
i=i+1;
/*while not end of file read to avoid error*/
while(!feof(stdin) && moreData){
cInput = fgetc(stdin);
fputc(cInput,stdout);
switch(cInput){
case '@':
case '*':
printf("\n");
printf("%d: ", i);
i=i+1;
break;
case '\n':
moreData = 0;
default:
break;
}
}
printf("\ndone!\n");
return 0;
}
EDIT: спасибо всем, я сделал это :)
Вы имели в виду '% d' вместо'% c' во второй 'printf'? –
да его для подсчета строк, а не для получаемого ввода – lolu
'default: break;' не нужно удалять его. –