Načítanie zo súboru – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Načítanie zo súboru – C / C++ – Fórum – Programujte.comNačítanie zo súboru – C / C++ – Fórum – Programujte.com

 

Grungy0
Super člen
24. 1. 2011   #1
-
0
-

Zdravím mohli by sme mi povedať kde je v tomto chyba? Je to jednoduché a už do toho pozerám pekne dlho a neviem v čom by mohol byť problém.

#include <windows.h>

#include <tchar.h>


int _tmain(int argc, TCHAR* argv[])
{
_tprintf(L"zaciatok \n");
HANDLE hSubor = CreateFile(L"pokus.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,NULL);
if(hSubor == INVALID_HANDLE_VALUE) _tprintf(TEXT("problem pri nacitani suboru \n"));

_tprintf(L"otvorenie \n");

TCHAR veta[1024]={0};
DWORD nPocetNacitanych = 0;
if(ReadFile(hSubor, veta, 1023, &nPocetNacitanych, NULL) == FALSE) _tprintf(TEXT("neda sa citat zo suboru \n"));
else
_tprintf(L"toto sa na citalo zo suboru %s, dlzky %i \n", veta, nPocetNacitanych);
_tprintf(L"koniec \n");

CloseHandle(hSubor);
return 0;
}


Počet načítaných znakov sedí. Jediný problém je, že to vypíše otázniky. V súbore je jednoduchý text abcd abcd.

Nahlásit jako SPAM
IP: 158.193.84.–
Prvý náznak hlúposti, je pocit geniality.
nervak0
Věrný člen
24. 1. 2011   #2
-
0
-

Ty tchar funkce (_t...) jsou definice pro ansi nebo wide funkce, podle typu buildu. Necpi jim natvrdo wide-stringy (L""), ale pouzivej TEXT(""), aby to zase podle potreby byl ansi "" nebo wide L"" string.

Ten _tprintf je tedy wprintf nebo printf a protoze ti funguji ty L"", tak je to zrejme wprintf. %s pro wprintf znamena wide-string a jestli ten nacteny text neni wide-string (unicode), tak se vypise spatne.

Pro vypis ansi-stringu pomoci wprintf muzes pouzit %S, ale to zase bude spatne pro ansi build, protoze _tprintf bude printf a ne wprintf. Proste to musis nejak osefovat.

Nahlásit jako SPAM
IP: 213.211.51.–
Grungy0
Super člen
25. 1. 2011   #3
-
0
-

Vďaka, problém bol v kódovaní toho súboru.

Nahlásit jako SPAM
IP: 158.193.84.–
Prvý náznak hlúposti, je pocit geniality.
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, 64 hostů

Podobná vlákna

Načítanie matice zo súboru — založil DušanDinoZzo

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ý