Hogyan kell while ciklust addig futtatni, ameddig be nem írjuk az "ennyi" szót? C#
while(t[i].n!="ennyi");
így gondoltam, de így nem oké :/
printf("Add meg a %d. nevet: ",i+1);
gets(t[i].n);
Így kérném be az usertől!
A 't' egy struktúra típusú tömb, a struktúra egyik eleme az 'n'.
Így struct stru{
char n[255];}
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
uff..
hát én még egy sor kódot se írtam c#-ban, de egy full oop nyelvben kicsit furcsának tűnik nekem ez a C-s globális függvény printf, gets hívás, főleg, hogy egy gyors keresés után egyik sincs c#-ban, nemhogy globális, de még osztály szinten se, úgyhogy akkor most döntsd már el, hogy milyen nyelv
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Ez sima C, itt az egész progi:
#include <stdio.h>
#include <stdlib.h>
struct stru{
char n[255];
char cn[255];
char g[255];
char ct[255];
};
void olvas(FILE* az)
{
char i;
while (!feof(az))
{
if (fscanf(az,"%c",&i) == 1)
printf("%c",i);
}
printf("\n");
}
void beker(FILE* az){
struct stru v;
struct stru t[100];
int i=0,k=0;
do{
printf("Add meg a %d. nevet: ",i+1);
gets(t[i].n);
printf("Add meg a %d. cegenek a nevet: ",i+1);
gets(t[i].cn);
printf("Add meg a %d. beosztasat: ",i+1);
gets(t[i].g);
printf("Add meg a %d. szuletesi helyet: ",i+1);
gets(t[i].ct);
i++;
}while((i<200) || (t[i].n!="ennyi"));
}
int main(int argc, char *argv[]){
struct stru v;
FILE* f;
int i;
f=fopen("D://data.txt","rb");
if (f==0){
printf("A fájlt nem sikerült megnyitni!");}
else{
olvas(f);
beker(f);
}
system("PAUSE");
return 0;
}
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
A string típusa: string, tehát a beolvasásra használt változónak ez a típusa.
A while ciklusmagjában és bent egy feltétellel is ellenőrzöd a beolvasott stringet. Ha nem az "ennyi", akkor fut tovább. Konvertálja intbe vagy double-ba. Az értéket felhasználja, vagy beteszi egy tömbbe további felhasználás céljára.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Segítségként megadok egy C# programot, az alapján próbáld meg az átalakítást:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace matrix {
class ListasFeltoltes {
static void Main(){
Console.WriteLine("Matrix bekerese.");
Console.WriteLine("Kerem a matrix sorainak szamat:");
int N = int.Parse(Console.ReadLine());
Console.WriteLine("Kerem a matrix oszlopainak szamat:");
int M = int.Parse(Console.ReadLine());
int[,] m = new int[N,M];
for (int db=0;db<N*M;db++)
{
// sor
int i;
do
{
Console.Write("Kerem a matrix sorat [1..{0}]:",N);
i = int.Parse( Console.ReadLine() );
}
while (i<1 || i>N);
// oszlop
int j;
do
{
Console.Write("Kerem a matrix oszlopat [1..{0}]:",M);
j = int.Parse( Console.ReadLine() );
}
while (j<1 || j>M);
// ertek
Console.Write("Kerem az erteket:");
string s = Console.ReadLine();
string[] elemek = s.Split(new Char[] {','});
for (int k = i-1; (k<i+elemek.Length-1) && (k<N); k++) {
m[k-1,j-1] = int.Parse( elemek[k] );
}
}
Console.WriteLine("A bekeres kesz.");
Console.WriteLine("A matrix:");
for(int i = 1; i<N; i++) {
for(int j = 1;j<M;j++) {
Console.Write("{0,4}", m[i-1,j-1]);
}
Console.WriteLine();
}
}
}
}
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
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!