Wątek zablokowany 2014-10-17 09:00 przez dzek69.

Przy wprowadzaniu tekstu do programu nie przyjmuje mi tekstu ze spacją do jednej tablicy

0

Mam taki problem otóż jak chce wprowadzić tekst ze spacjami do tablicy znakół do tego nie akceptuje np. mam taki kod

   char tytul[50];
  char plik[40];
  char tresc[255];
  char nazwisko[30];
  int ocena;
  
  printf("Podaj nazwe pliku\n");
  scanf("%35s",plik);
  printf("Podaj nazwe tytulu\n");
  scanf("%s",tytul);
  printf("Podaj zawartosc tresci\n");
  scanf("%255s",tresc);  
  printf("Podaj nazwisko\n");
  scanf("%s",nazwisko); 
  printf("Podaj ocene\n");
  scanf("%d",&ocena);

I np. jak przy akcji podaj nazwe pliku dodam tekst oddzielony jedną spacją to akcje Podaj nazwe tytulu omija i nie zapisuje nic do zmiennej tytul.

0

"%s" wczytuje słowo. Jeżeli chcesz wczytać wiersz użyj: fgets - tylko pamiętaj że wczytuje razem z '\n'

0
   char tytul[50];
  char plik[40];
  char tresc[255];
  char nazwisko[30];
  int ocena;
  char wynik[30];
  
  printf("Podaj nazwe pliku\n");
  scanf("%35s",plik);
  printf("Podaj nazwe tytulu\n");
  scanf("%s",tytul);
  printf("Podaj zawartosc tresci\n");
  scanf("%255s",tresc);  
  printf("Podaj nazwisko\n");
  //scanf("%s",nazwisko); 
  wynik = fgets(nazwisko,30,stdin);
  printf("Podaj ocene\n");
  scanf("%d",&ocena);

Taki kod zwraca mi błąd jeżeli chodzi o funkcje fgets

projekt.c9: error: incompatible types when assigning to type ‘char[30]’ from type ‘char *’

A taki pomija czytanie nazwiska

  char tytul[50];
  char plik[40];
  char tresc[255];
  char nazwisko[30];
  int ocena;
  char wynik[30];
  
  printf("Podaj nazwe pliku\n");
  scanf("%35s",plik);
  printf("Podaj nazwe tytulu\n");
  scanf("%s",tytul);
  printf("Podaj zawartosc tresci\n");
  scanf("%255s",tresc);  
  printf("Podaj nazwisko\n");
  //scanf("%s",nazwisko); 
  fgets(nazwisko,30,stdin);
  printf("Podaj ocene\n");
  scanf("%d",&ocena); 
0
while(getchar()!='\n') {}
fgets(nazwisko,30,stdin);
0

Dzięki zadziałało.

1 użytkowników online, w tym zalogowanych: 0, gości: 1