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

Ukládání do souboru – C / C++ – Fórum – Programujte.comUkládání do souboru – C / C++ – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené.
Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Scrat0
Návštěvník
20. 12. 2014   #1
-
0
-

Dalsi zadrhel... rad bych pro zapis pouzival objekt FILE, nejak takto 

  FILE * errFile = _wfopen((const wchar_t *)TEXT("c:\\temp\\pokus.txt"), TEXT("wb"));
  if (errFile == NULL)
    return 0;
  wchar_t ooo[3];
  ooo[0] = TEXT('\r');
  ooo[1] = TEXT('\n');
  ooo[2] = TEXT('\0');
  wstring retezec = TEXT("šžčžščžšž");
  retezec += ooo;
  for (int i = 0; i < 5; i++)
    fputws(retezec.c_str(), errFile);
  fclose(errFile);

Ono to tedy skoro i funguje... pokud to otevru v poznamkovym bloku, tak to vypada tak jak ma. Problem je pokud to otevru treba v Notepadu++, tam neni videt dobre zadny znak. Nicmene pokud v poznamkovem bloku odmazu posledni znak, tak se vse (krom posledniho odmazaneho znaku) zobrazi dobre i v Notepadu++.

Netrvam nutne na binarnim zapisu. Testoval jsem i zapisovat na zacatek souboru vselijaky BOMy, ale oba textaky je vzdycky zobrazili taky a vetsinou  to neslo precist v ani jednom z nich.

Nahlásit jako SPAM
IP: 88.100.228.–
Reklama
Reklama
BDS+2
Věrný člen
20. 12. 2014   #2
-
0
-

#1 Scrat 

int main(int argc, char* argv[])
{
  FILE * errFile = _wfopen(L"pokus.txt", L"wb");
  if (errFile == NULL) return 0;

  char boom[2]={0xFF, 0xFE};
  wchar_t ooo[] = {L"\r\n"};

  std::wstring retezec = L"šžčžščžšž";
  retezec += ooo;

  fwrite(boom, 1, 2, errFile);

  for (int i = 0; i < 5; i++)
	fputws(retezec.c_str(), errFile);
  fclose(errFile);

	return 0;
}
//---------------------------------------------------------------------------

ps. TEXT() jsem si nahradil L"" jen kvůli kompatibilitě

problém je v tom BOOM

Nahlásit jako SPAM
IP: 31.47.99.–
Visual Studio C/C#/C++
(pouze samouk)
BDS+2
Věrný člen
21. 12. 2014   #3
-
0
-

BOOM >> BOM  

Nahlásit jako SPAM
IP: 31.47.99.–
Visual Studio C/C#/C++
(pouze samouk)
Scrat0
Návštěvník
21. 12. 2014   #4
-
0
-

#3 BDS
Jo to je mozny, ale nevim jakej je spravnej, jsem testoval skoro vsechny co jsem vygoogloval a nic.

Nahlásit jako SPAM
IP: 88.100.228.–
Scrat0
Návštěvník
21. 12. 2014   #5
-
0
-

#2 BDS
Jeee ono to funguje, co jsem asi delal spatne.. dik.

Nahlásit jako SPAM
IP: 88.100.228.–
Scrat0
Návštěvník
21. 12. 2014   #6
-
0
-

Jeste je tedy zahada, proc pomahalo smazat ten posledni znak, kdyz problem byl na zacatku.

Nahlásit jako SPAM
IP: 88.100.228.–
BDS+2
Věrný člen
21. 12. 2014   #7
-
0
-

#5 Scrat
Funguje, ale asi ne na všech systémech, správně by se asi měla zjistit "endialita" WCHARu a podle toho zvolit

0xFFFE / 0xFEFF. 

třeba takto by to mohlo fungovat:

bool IsBigEndian()
{
 wchar_t w = 0x0100;
 return ((char)w == 0x01);
}

2. proč to pomohlo nevím, každopádně to nečetlo ten text ve správném formátu

Nahlásit jako SPAM
IP: 31.47.99.–
Visual Studio C/C#/C++
(pouze samouk)
Scrat0
Návštěvník
21. 12. 2014   #8
-
0
-

#7 BDS
Tim "ne na vsech systemech" je mysleno, ze i v ramci systemu s windows to nemusi jit? 

Nahlásit jako SPAM
IP: 88.100.228.–
BDS+2
Věrný člen
21. 12. 2014   #9
-
0
-

na windows to pojede

Nahlásit jako SPAM
IP: 31.47.99.–
Visual Studio C/C#/C++
(pouze samouk)
Scrat0
Návštěvník
21. 12. 2014   #10
-
0
-

#9 BDS
Tak to staci :)

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

Podobná vlákna

Ukládání do souboru — založil blizzard384

Ukladani do souboru — založil Qvido

Ukládání do souboru — založil Ukládání do souborů?

Ukládání do souboru — založil Garret Raziel

Moderátoři diskuze

 

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