Błąd przy getchar() too many arguments

0

Mam problem chce aby wczytało mi ciąg znaków , a wyskakuje mi bład "too many arguments to function getchar()". Podaje fragment kodu:

#include <stdio.h>
#include <string.h>
#include <conio.h>

int main(){
int suma=0;
char ciag[31];
printf("Wprowadz ciag nawiasowy (max 30 znaków):");
getchar("%s", ciag);

1

int getchar(void) to nie ma parametrow powinno byc

data = getchar();
0

Napisałm to fgetc()ale nadal błąd wyskakuje : " too few arguments to function 'fgetc'"

#include <stdio.h>
#include <string.h>
#include <conio.h>

int main(){
int suma=0;
char ciag[31];
printf("Wprowadz ciag nawiasowy (max 30 znakow):");
fgetc();

0

Funkcja getchar jest taka dziwna. W normalnych warunkach czeka na wpisanie tekstu z klawiatury (zakończonego enterem), po czym zwraca pierwszy z tych znaków. Kolejne wywołania getchar zwracają kolejne znaki zapamiętane za pierwszym wywołaniem.
Czyli trzeba by utworzyć pętlę np. while ((c = getchar()) != '\n')

0

Tutaj dokumentacja funkcji fgetc(): https://en.cppreference.com/w/c/io/fgetc
Pobiera jeden argument, wskaźnik do strumienia wejściowego (FILE* stream); zwraca kod znaku pobranego z podanego strumienia (int).

Tutaj dokumentacja funkcji getchar(): https://en.cppreference.com/w/c/io/getchar
Nie pobiera żadnych argumentów; zwraca kod znaku pobranego ze strumienia wejściowego stdin (int).


UPDATE: Przepraszam, złe linki dałem (do C++ zamiast do C).


UPDATE2: I oczywiście nie z przestrzeni nazw std, której w C nie ma. ;)

2

Po pierwsze dokumentacja. Bez tego kombinujesz na ślepo. Czy wiesz jak sprawdzić dokumentację biblioteki standardowej?

0

W C mamy scanf

scanf(" %d", &example);
0
stivens napisał(a):

W C mamy scanf

scanf(" %d", &example);

To nie jest równoważnik dyskutowanej tu funkcji, lecz zupełnie cięższy kaliber. Oprócz tego (jak zauważył @Azarien) o zupełnie innej dynamice

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