C++, hogy kell úgy adatot bekérni, ha meg van adva hány sor és hány karakter lehet?
#include <stdio.h>
int getline(char s[], int lim) {
int i;
char c;
for (i = 0; i<lim && (c = getchar()) != '\n' && c != EOF; ++i)s[i] = c;
s[i] = '\0';
while (c != '\n'&& c != EOF)c = getchar();
return i;
}
void main(void){
char s[128];
int i, h = 0;
h = getline(s, 128);
for (i = 0; i <= h; i++){
printf("%c", s[i]);
}
printf("\n");
}
Ez C-ben van, de elvileg működnie kell:
#include <stdio.h>
int main(void){
char c[999];
scanf("%5s", &c);
printf("%s", c);
return 0;
}
A scanf-ben a %-jel és a típus (vagyis az "s") között van a max hossz.
void main fúj
amúgy kifelejtettél sok mindent a kérdésből..
például mit csináljon a program, ha nem úgy van? több van egy sorban?
Ja! :-)
Akkor újra elnézést, már össze-vissza jár az agyam, rá se néztem nagyon a kérdező kódjára. :-)
Megint csak C-s kódot tudok írni, de Cpp-ben is működnie kell:
Egyszerű, csak egyszer:
#include <stdio.h>
int main(void){
char c[999];
scanf("%s", &c);
if(strlen(c) <= 5){
printf("Ok: %s", c);
}else{
printf("Rossz!");
}
return 0;
}
Ez pedig ciklusban van, addig kérdez be, ameddig nem lesz megfelelő hosszúságú a string:
#include <stdio.h>
int main(void){
char c[999];
scanf("%s", &c);
while(strlen(c)>5){
printf("Rossz, írja be újra: ");
scanf("%s",&c);
}
printf("Jó!");
return 0;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!