Vstup matice – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Vstup matice – C / C++ – Fórum – Programujte.comVstup matice – C / C++ – Fórum – Programujte.com

 

Kuba-$
~ Anonymní uživatel
24 příspěvků
22. 11. 2007   #1
-
0
-

na vstupu mam tyto hodnoty:
3 4 //radky a sloupce
1 2 3 4 3 2 1 //hodnoty matice
2 3 4 5 4 3 2
3 4 5 10 5 4 3
2 3 4 5 4 3 2
1 2 3 4 3 2 1

jak mam nacist urcity pocet hodnot z radku a pak prejit na druhy radek, abych zbyvajici hodnoty z prvniho radku zahodil?
potrebuju matici oriznout takhle:
1 2 3 4
2 3 4 5
3 4 5 10

Nahlásit jako SPAM
IP: 147.229.193.–
tmi0
Věrný člen
23. 11. 2007   #2
-
0
-

muzes nacist cely radek pomoci funkce(metody objektu cin) getline, a pote z takoveho retezce nacist m promennych, kde m je sirka matice; a presunout se na dalsi radek (opetovnym getlinem...)

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Kuba-$
~ Anonymní uživatel
24 příspěvků
25. 11. 2007   #3
-
0
-

JESTE JEDEN DOTAZ:
kdyz nacitam hodnoty ze souboru,
potrebuju ulozit a napsat na vystup jen jeden radek.

davam:



while (scanf("%i", & vstup) != '\n') // s EOF to funguje
printf("%i ", vstup);

ale nejede mi to :-(

Nahlásit jako SPAM
IP: 85.132.224.–
Smurffy0
Newbie
25. 11. 2007   #4
-
0
-

co takto cez dva forcykly a getchar?

Nahlásit jako SPAM
IP: 85.216.157.–
tmi0
Věrný člen
25. 11. 2007   #5
-
0
-

To Kuba-$ : nejede ti to z jednoho duvodu: scanf("%i") nacte cele cislo, zatimco '\n' je znak.
reseni je prekvapive NAPROSTO stejne jako v minulem pripade. opet getline - treti parametr getline je totiz ukazatel na soubor...
pokud by si chtel, muzes to cele cist po znacich ("%c"), ale takto je to (podle me) snazsi.

To Smurffy : ??? omlouvam se ale toto reseni problemu skutecne nechapu.

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Kuba-$
~ Anonymní uživatel
24 příspěvků
26. 11. 2007   #6
-
0
-

To tmi : Dík, zkusím to. Snad to tak budu moci udelat. Mame totiz ve funkcich ruzna omezeni. Mimochodem. jde to taky pres fgets() ? Zda se mi to podobne, tyto 2 funkce.

Abych to lepe pochopil,jak to mam naprogramovat,predvedu kousek kodu:



#define MAX 1000
char str[MAX];
int pole[MAX];
int cislo;

while (fgets(str, MAX, soubor) != NULL) {
for (int i = 0, i < MAX, i++) {
while (str[i] != '\n' && str[i] != '\t') {
cislo = cislo * 10 + str[i];
}
pole[i] = cislo;
}
}


Pochopil jsem to dobre? je to takhle spravne?

Nahlásit jako SPAM
IP: 85.132.224.–
tmi0
Věrný člen
26. 11. 2007   #7
-
0
-

getline a fgets jsou docela podobne, myslim ze rozdil je treba v tom ze fgets vraci ukazatel na polozku do ktere nacitalo a getline vraci pocet prectenych bytu...
pochopil jsi to spravne, ale jako podminku v druhem cyklu while (pozn: ten while by se ti zacyklil, je tam potreba misto i pouzivat nejakou jinou promennou, kterou v kazdem kroku inkrementujes) bych radeji pouzil (str[i]>='0' && str[i]<='9'), je to bezbecnejsi.
ovsem existuje jeste jednodussi vec, funkce int atoi(const char * S) deklarovana v stdlib.h, ktera svuj parametr, znakovy retezec, prevede na cislo.

tedy tvuj kod by se mohl smrsknout na:



#include <stdlib.h>
#define MAX 1000
char str[MAX];
int pole[MAX];

int i=0;
while (fgets(str, MAX, soubor) != NULL && i<MAX){
pole[i++] = atoi(str);
}

Nahlásit jako SPAM
IP: 89.185.230.–
ksp.mff.cuni.cz -- doporučuje 5 z 0 přetečených bufferů!
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 19 hostů

Podobná vlákna

Vstup — založil unjava

Vstup — založil Khyplozz

Vstup — založil Khyplozz

Vstup — založil wokena

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý