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

Zápis do souboru – C / C++ – Fórum – Programujte.comZápis do souboru – C / C++ – Fórum – Programujte.com

 

Dave-CZ
~ Anonymní uživatel
75 příspěvků
9. 11. 2009   #1
-
0
-

Potřeboval bych pomoc se zápisem do souboru. Potřebuju, aby soubor měl název který si zadá uživatel... příklad jméno. Jde to nejak udělat? diky moc d.chudik@centrum.cz

Nahlásit jako SPAM
IP: 158.196.11.–
Bald3rr0
Super člen
9. 11. 2009   #2
-
0
-
Nahlásit jako SPAM
IP: 82.100.0.–
Dave-CZ
~ Anonymní uživatel
75 příspěvků
9. 11. 2009   #3
-
0
-

To Bald3rr : NO popravdě dělám projekt na VŠB... a jen jsem se ptal jsetli to jde a jak se to dělá... abych to mohl dodělat... budu dělat dotazník.. a potrebuju aby se odpovedi ukladali podle jmen a jde aby se to ukladalo i do urcite slozky ktera bude mit nazev podle data? a kde to mam kdyz tak najit

Nahlásit jako SPAM
IP: 158.196.65.–
Bald3rr0
Super člen
9. 11. 2009   #4
-
0
-
Nahlásit jako SPAM
IP: 82.100.0.–
Dave-CZ0
Návštěvník
9. 11. 2009   #5
-
0
-

To Bald3rr : Ok diky moc urcitě pohledám

Nahlásit jako SPAM
IP: 158.196.65.–
Dave-CZ0
Návštěvník
10. 11. 2009   #6
-
0
-

Tak jsem nic nenašel hledal jsem, ale nic, stále se mi to uklada do jednoho souboru

Nahlásit jako SPAM
IP: 212.47.23.–
Dave-CZ0
Návštěvník
10. 11. 2009   #7
-
0
-



#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;

int main () {


fstream filestr;

filestr.open ("jmeno.txt", fstream::out | fstream::app);

cout << "\n----------- NOVEHO ZAMESTNANEC -----------\n";

char krestni_jmeno[12];

cout << "Krestni jmeno: ";
cin >> krestni_jmeno;

char prijmeni[30];

cout << "Prijmeni: ";
cin >> prijmeni;

int vek;

cout << "Vek: ";
cin >> vek;

cout << "\n\n Zapsáno do souboru s priponou .txt";


cin.get();

filestr << "----------- ZAMESTNANEC -----------" << endl;

filestr << "Krestni jmeno: " << krestni_jmeno << endl;

filestr << "Prijmeni: " << prijmeni << endl;

filestr << "Vek: " << vek << endl;


filestr.close();

cin.get();

return 0;
}



jak to udelam aby se to neulozil jako - jmeno.txt ale treba podle toho jak si zadam Krestni jmeno:..?? diky

Nahlásit jako SPAM
IP: 212.47.23.–
Dave-CZ0
Návštěvník
10. 11. 2009   #8
-
0
-

Tak nazev podle jmena uz mi jde....



#include <fstream>
#include <iostream>
#include <iomanip>
using namespace std;

int main () {

char Jmeno[20];
char Prijmeni[50];
cout << "Zadejte cele jmeno: ";
cin >> Jmeno;

ofstream fout(Jmeno); \\potrebuju tam dostat priponu .txt
fout << Jmeno;
fout << "\n";
cout << "Zadejte sve prijmeni: ";

cin >> Prijmeni;
fout << Prijmeni << "\n";
fout.close();


Jen potrebuju aby tam byly jeste dana pripona .txt a nevim jak na to poradi nekdo

Nahlásit jako SPAM
IP: 212.47.23.–
Bald3rr0
Super člen
10. 11. 2009   #9
-
0
-

To Dave-CZ : Vytvoř si nějakou proměnnou, do které ulož jméno + ".txt" (strcpy)

Nahlásit jako SPAM
IP: 82.100.0.–
Dave-CZ0
Návštěvník
11. 11. 2009   #10
-
0
-

Nevim co dělam blbě ale fakt si s tim nevim rady.. promenou jsem dal, ale nejde to.

 

char nazev_souboru[20] = Jmeno ++ ".txt";

ofstream fout(nazev_souboru);

Nahlásit jako SPAM
IP: 158.196.66.–
Dave-CZ0
Návštěvník
11. 11. 2009   #11
-
0
-

JJ uz to mam diky všem za pomoc.

Nahlásit jako SPAM
IP: 158.196.66.–
TiMie
~ Anonymní uživatel
1 příspěvek
20. 1. 2010   #12
-
0
-

Prosím jak udělat to samé, na co se ptá autor topicu na začátku, ale v jazyce C? jde to pomocí fuknkce fopen? zkoušel sem to následovně ale bez úspěchu, co dělám špatně prosím?



char tname[20];

printf(" zadejte NAZEV TESTU:");
gets(tname);

if((fw= fopen("TEST-%s.txt", "w"))== NULL){ //zajisteni spravnosti otevreni souboru
printf("chyba pri otevirani souboru %s!\n","TEST-&tname.txt");
return -1; }

Nahlásit jako SPAM
IP: 93.91.240.–
KIIV
~ Moderátor
+43
God of flame
20. 1. 2010   #13
-
0
-

To TiMie : tudy cesta nevede ;) zkus najit neco o sprintf a vysledek teprve hodit do fopen jako soubor
+ bacha na gets.. lepsi je fgets nebo podobne

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Figa0
Super člen
24. 1. 2010   #14
-
0
-

Omlouvam se ze lezu do tematu, ale uz jsem vazne zoufaly. Mam char array[9][9] jak tol ulozit do souboru jako jeden radek? Predem dekuji za odpoved.

Nahlásit jako SPAM
IP: 89.24.6.–
TooM70
Newbie
24. 1. 2010   #15
-
0
-

To Figa :

FILE *file = fopen("soubor.txt", "w");

for (int i = 0; i < 9; i++)
for (int j = 0; j < 9; j++)
fprintf(file, "%c", array[i][j])
fclose(file);

Nahlásit jako SPAM
IP: 147.229.201.–
Figa0
Super člen
24. 1. 2010   #16
-
0
-

dekuji. Mam jeste dotaz. potrebuji ulozit tri ruzne hofnoty do souboru jak treba nacist ze souboru string od 82 do 163 nebo od 164 do konce souboru. potebuji totiz ty tri hodnoty zvlast cist a zvlast zapisovat. predem dekuji za odpoved.

Nahlásit jako SPAM
IP: 89.24.6.–
Figa0
Super člen
25. 1. 2010   #17
-
0
-

Nikdo nevi?

Nahlásit jako SPAM
IP: 87.249.133.–
liborb
~ Redaktor
+18
Guru
26. 1. 2010   #18
-
0
-
Nahlásit jako SPAM
IP: 85.207.166.–
Figa0
Super člen
26. 1. 2010   #19
-
0
-

Diky moc to je presne to co jsem hledal. Jeste jeden dotaz. Mam string[82] jak rozdelit jeho prvky do pole[9][9]? Dekuji moc za odpovedi.

Nahlásit jako SPAM
IP: 87.249.133.–
Grungy0
Super člen
26. 1. 2010   #20
-
0
-

skús použiť cyklus :smile1:

Nahlásit jako SPAM
IP: 158.193.84.–
Prvý náznak hlúposti, je pocit geniality.
Figa0
Super člen
26. 1. 2010   #21
-
0
-

Omloivam se za debilni dotaz vubec jsem se nad tim nezamyslel.

Nahlásit jako SPAM
IP: 87.249.133.–
Figa0
Super člen
27. 1. 2010   #22
-
0
-

Ahoj opet dalsi dotaz kvuli kteremu je zbyrecne tvorit novy topic. Proc tento kod vypise "Windows" a za tim spoustu neznamych znaku?

[

char buffer[8];
FILE * pFile;
pFile = fopen ( "save.txt" , "r" );
//fputs ( "WindowsLinuxMac" , pFile );
fread(buffer , 1 , 7, pFile);
fclose ( pFile );
cout << buffer;
return 0;/code]
Predem dekuji za odpovedi.

Nahlásit jako SPAM
IP: 87.249.133.–
KIIV
~ Moderátor
+43
God of flame
27. 1. 2010   #23
-
0
-

To Figa : mozna proto, ze fread nedava na konec ukoncovaci znak '\0' .. vypisujes vesmes nejakej mensi memory dump pameti dokud nenarazi na 0

Nahlásit jako SPAM
IP: 80.250.1.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Figa0
Super člen
27. 1. 2010   #24
-
0
-

Zkusil sem vložit na konec bufferu '\0' a stale to same. No to uz je jedno spis netozumim jedne veci. Mam napr. char text[50]; Do neho pres fread nactu data. Pak vytvorim jiny char elements[9][9] a chci udelat toto. elemets[5][3] = text[5] takhle to bohuzelk nejde. Jak na to?

Nahlásit jako SPAM
IP: 87.249.133.–
liborb
~ Redaktor
+18
Guru
28. 1. 2010   #25
-
0
-

Ale ne na konec bufferu, ale za načtený text, tj. něco takového:




fread(buffer , 1 , 7, pFile);

buffer[7] = '\0';

Nahlásit jako SPAM
IP: 85.207.166.–
Figa0
Super člen
28. 1. 2010   #26
-
0
-

Diky moc. A ten druhy problem s tim prirazenim prvku charu do jineho?

Nahlásit jako SPAM
IP: 87.249.133.–
liborb
~ Redaktor
+18
Guru
28. 1. 2010   #27
-
0
-

A co na tom nefunguje? Mě na tom nepřijde nic špatně.

Nahlásit jako SPAM
IP: 85.207.166.–
Figa0
Super člen
28. 1. 2010   #28
-
0
-

Tady je cely kod. unsolved[9][9] je typu char. Místo hodnoty se přiradí dvojciferna cisla (adresy?)



char loadUnsolved[82];
FILE * file;
file = fopen ( "save.txt" , "r" );
fread (loadUnsolved,1,81,file);
fclose (file);
loadUnsolved[81] = '\0';
//g_print ((gchar *) loadUnsolved); Vim ze je char naplnen spravne
int i = 1;
for (int m = 0; m < 9; m++) {
for (int n = 0; n < 9; n++) {
unsolved[m][n] = loadUnsolved[5];
++i;
}
}

Nahlásit jako SPAM
IP: 87.249.133.–
liborb
~ Redaktor
+18
Guru
28. 1. 2010   #29
-
0
-

Ale ten kód je podle mě správně, tedy až na řádek:



unsolved[m][n] = loadUnsolved[5];


tam asi mělo být:


unsolved[m][n] = loadUnsolved[i];


jinak je to i zbytečné.

Pak samozřejmě ještě indexace pole - začíná se 0. Jinak char je celočíselný typ (rozsah -128 až 127), a jeho obsah se dá intepretovat jako znak, když to tak chceš. Dvojciferná čísla budou asi kódy znaků viz ASCII tabulka.

Nahlásit jako SPAM
IP: 85.207.166.–
Figa0
Super člen
28. 1. 2010   #30
-
0
-

Kdyz tam dam i tak dostanu chybu ze nemuzu pretypovat char* do char.

Nahlásit jako SPAM
IP: 89.24.7.–
liborb
~ Redaktor
+18
Guru
28. 1. 2010   #31
-
0
-

A jak máš definovanou tu proměnnou unsolved?

Nahlásit jako SPAM
IP: 85.207.166.–
Figa0
Super člen
28. 1. 2010   #32
-
0
-

char unsolved[9][9] a uz v ni jsou hodnoty.

Nahlásit jako SPAM
IP: 89.24.7.–
Bald3rr0
Super člen
28. 1. 2010   #33
-
0
-

To Figa : Zkus:

unsolved[m][n] = (char)loadUnsolved[i]
Pokud to nepůjde, tak se podívej debuggerem, co máš v loadUnsolved za hodnoty.

Nahlásit jako SPAM
IP: 82.100.0.–
Figa0
Super člen
28. 1. 2010   #34
-
0
-

To uz jsem take zkousel to take nejde. EDIT: tak uz to nejakym zazrakem jde ale vypisou se misto hodnot dvouciferne adresy ASCII. Pritom kdyz mam treba jeste pole char data[9][9] a udelam unsolved[m][n] = data[m][n] tak vse normalne funguje. Zpbrazi se hodnoty. EDIT2: Vse je ok vsem moc dekuji za trpelivost.

Nahlásit jako SPAM
IP: 87.249.133.–
Figa0
Super člen
28. 2. 2010   #35
-
0
-

Ahoj prislo mi zbytecne zakladat novy topic tak pisi sem. Mám něco takového:



char unsolved[9][9]
char base[9][9];
void save() {
FILE *file = fopen("save.txt","w");
for (int x = 0; x < 9; x++) {
for (int y = 0; y < 9; y++) {
fprintf(file,"%c",unsolved[x][y]);
}
}
for (int x = 0; x < 9; x++) {
for (int y = 0; y < 9; y++) {
fprintf(file,"%c",base[x][y]);
}
}
fclose(file);

}
void save() {
char loadUnsolved[82];
char loadBase[82];
FILE * file;
file = fopen ( "save.txt" , "r" );
//load unsolved string
fread (loadUnsolved,1,81,file);
//load base string
fread (loadBase,1,81,file);
loadUnsolved[81] = '\0';
loadBase[81] = '\0';
memcpy(unsolved,loadUnsolved,sizeof(loadUnsolved));
memcpy(base,loadBase,sizeof(loadBase));
fclose (file);
}

Kdy se provede tento kod vypisuji jednotlive prvky unsolved a base. V base se vypise vse ok ale v unsolved vzdy chybi prvek [0][0] Cim to je? Predem dekuji za odpovedi.

Nahlásit jako SPAM
IP: 87.249.133.–
KIIV
~ Moderátor
+43
God of flame
28. 2. 2010   #36
-
0
-

tezko rict kdyz nikde nemas jak plnis ten unsolved

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Figa0
Super člen
28. 2. 2010   #37
-
0
-

Promin vypadl mi konec :smile10: editovano

Nahlásit jako SPAM
IP: 87.249.133.–
KIIV
~ Moderátor
+43
God of flame
28. 2. 2010   #38
-
0
-

no jen hadam, ale mejme tezi:
- unsolved je v pameti az za base
- unsolved a base ma 81 bajtu
- loadUnsolved a loadBase ma v pameti 82 bajtu...
- zapisujes prvni unsolved a prepises jeden bajt za nim
- zapisujes druhy base a prepises jeden bajt za nim

doufam ze je jasny kam tim mirim :)

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Figa0
Super člen
28. 2. 2010   #39
-
0
-

Díky moc uz to frci. Mel bych si to zacit hlidat :)

Nahlásit jako SPAM
IP: 87.249.133.–
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, 14 hostů

Podobná vlákna

Zápis do souboru — založil Earl Cash

Zapis do souboru — založil Ondřej Karanský

Zápis do souboru — založil Martin

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ý