Ik wil middels ifstream een tekstbestand uitlezen en de inhoud in een string (genaamd content) stoppen. Dat tekstbestand is ANSI gecodeert. Dit gaat inprincipe goed alleen wordt er aan het eind een extra karakter uitgelezen en toegevoegd aan de content-string. Ik kan dat laatste karakter uit de content-string verwijderen, maar waar komt dat karakter vandaan?
De desbetreffende code:
Ik compileer deze code met MinGW 2.95.2-1 onder Windows XP.
Ik heb trouwens meer encoding-problemen (unicode) icm C++. Ik heb wel wat interessante aritkelen gevonden, maar toch kom ik daar niet écht verder mee. Als jullie nog tips hebben dan zou ik die graag willen weten.
edit:
Het lag dus aan mijn while-loopje en had niets met encoding te maken. Ik vroeg me al dagen af waar het probleem lag en nu zie ik het zo
Oplossing:
De desbetreffende code:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| #include <iostream> #include <fstream> #include <string> int main() { char token; std::string content; ifstream input("tekstbestand.txt"); while(input.good()) { token = input.get(); std::cout << token << std::endl; content+=token; } // content.erase(content.length()-1); // mogelijke oplossing std::cout << "content: " << content << std::endl; std::cout << "lengte: " << content.length() << std::endl; std::cout << "laatste karakter: " << content[content.length()-1] << std::endl; std::cin.get(); return 0; } |
Ik compileer deze code met MinGW 2.95.2-1 onder Windows XP.
Ik heb trouwens meer encoding-problemen (unicode) icm C++. Ik heb wel wat interessante aritkelen gevonden, maar toch kom ik daar niet écht verder mee. Als jullie nog tips hebben dan zou ik die graag willen weten.
edit:
Het lag dus aan mijn while-loopje en had niets met encoding te maken. Ik vroeg me al dagen af waar het probleem lag en nu zie ik het zo
Oplossing:
C++:
1
2
3
4
5
6
7
| token = input.get(); while(input.good()) { content+=token; std::cout << token << std::endl; token = input.get(); } |
[ Voor 17% gewijzigd door JeromeB op 16-08-2005 20:48 ]
PC load letter? What the fuck does that mean?