ASCI Zeichen in C???

Diskutiere ASCI Zeichen in C??? im Developer Network Forum im Bereich Hardware & Software Forum; Hi Leute, habe ein Prgramm geschrieben was mir Zeichenweise Datei1 in Datei2 kopiert und dabei alle nichtdruckbaren Zeichen rauslöscht. Dies mach...
  • ASCI Zeichen in C??? Beitrag #1
bauee

bauee

Bekanntes Mitglied
Dabei seit
17.07.2003
Beiträge
1.036
Reaktionspunkte
0
Ort
Europa
Hi Leute,

habe ein Prgramm geschrieben was mir Zeichenweise Datei1 in Datei2 kopiert und dabei alle nichtdruckbaren Zeichen rauslöscht. Dies mach ich z.B. mit der Funktion isgraph(). Nun ist da das Problem, dass alle ä,ü,ö von Datei1 auch nicht mitkopiert werden.

In der Ascitabelle die ich habe sind diese Zeichen auch nicht drin! Sag ich im Programm er soll auch kopieren wenn es ein 'ä' zeichen ist kopiert er es auch nicht!

Wer kann mir da helfen?

Hier der code bis jetzt:

//Programm liest zwei Dateien auf der Kommandozeile ein
//das Prog. kopiert Datei1 in Datei2 und löscht beim
//kopieren alle nicht druckbaren Zeichen raus! Zwischen
//den Wörtern wird ein Leerzeichen eingefügt.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main(int argc, char*argv[]){
FILE *in, *out;
char zeile[200];
int zeich,a=1;
if(argc != 3){
fprintf(stderr, "ussage bla..");
exit(1);
}
if((in = fopen(argv[1],"r"))==NULL)
fprintf(stderr, "Fehler beim oeffnen von Datei1");
if((out = fopen(argv[2],"a"))==NULL)
fprintf(stderr, "Fehler beim oeffnen von Datei2");
while((zeich=getc(in)) != EOF)
if (isgraph(zeich)||zeich=='ä'){
a=0;
putc(zeich, out);
}
else if (a!=1){
putc(' ', out);
a=1;
}

}
 
  • ASCI Zeichen in C??? Beitrag #2
N

nic_power

Senior Moderator
Dabei seit
27.12.2000
Beiträge
7.838
Reaktionspunkte
2
Hallo,

das Problem ist, dass "isgraph" et. al. vom eingestellten Locale abhängig sind. D.h. in Sprachen in denen es "äüö" usw nicht gibt, werden diese folglich auch nicht berücksichtigt. Ist Dein Local auf eine dieser Sprachen eingestellt, hast Du das beschriebene Problem.

Nic
 
  • ASCI Zeichen in C??? Beitrag #3
bauee

bauee

Bekanntes Mitglied
Dabei seit
17.07.2003
Beiträge
1.036
Reaktionspunkte
0
Ort
Europa
nic_power schrieb:
Hallo,

das Problem ist, dass "isgraph" et. al. vom eingestellten Locale abhängig sind. D.h. in Sprachen in denen es "äüö" usw nicht gibt, werden diese folglich auch nicht berücksichtigt. Ist Dein Local auf eine dieser Sprachen eingestellt, hast Du das beschriebene Problem.

Nic

was ist ein Locale? Wo kann man das einstellen?
 
  • ASCI Zeichen in C??? Beitrag #4
bauee

bauee

Bekanntes Mitglied
Dabei seit
17.07.2003
Beiträge
1.036
Reaktionspunkte
0
Ort
Europa
SOS :confused:
tongue.gif
 
  • ASCI Zeichen in C??? Beitrag #5
U

UnimatrixZero

Bekanntes Mitglied
Dabei seit
27.06.2001
Beiträge
645
Reaktionspunkte
0
Dieses Beispiel wird Dir sicher weiterhelfen:
Code:
 [b]Example[/b]

 /* LOCALE.C: Sets the current locale to "Germany" using the
 * setlocale function and demonstrates its effect on the strftime
 * function.
 */

#include <stdio.h>
#include <locale.h>
#include <time.h>

void main(void)
{
       time_t ltime;
       struct tm *thetime;
       unsigned char str[100];

       setlocale(LC_ALL, "German");
       time (&ltime);
       thetime = gmtime(&ltime);

       /* %#x is the long date representation, appropriate to
        * the current locale
        */
       if (!strftime((char *)str, 100, "%#x", 
                     (const struct tm *)thetime))
               printf("strftime failed!\n");
       else
               printf("In German locale, strftime returns '%s'\n", 
                      str);

       /* Set the locale back to the default environment */
       setlocale(LC_ALL, "C");
       time (&ltime);
       thetime = gmtime(&ltime);

       if (!strftime((char *)str, 100, "%#x", 
                     (const struct tm *)thetime))
               printf("strftime failed!\n");
       else
               printf("In 'C' locale, strftime returns '%s'\n", 
                      str);
}
 [b]Output[/b]

 In German locale, strftime returns 'Donnerstag, 22. April 1993'
In 'C' locale, strftime returns 'Thursday, April 22, 1993'
 
  • ASCI Zeichen in C??? Beitrag #6
bauee

bauee

Bekanntes Mitglied
Dabei seit
17.07.2003
Beiträge
1.036
Reaktionspunkte
0
Ort
Europa
habe schon eine Lösung gefunden...

lese Dateien Byteweise ein und arbeite dann mit der erweiterten ASCI Tabelle wo ä ö ü auch drin ist!

Danke und Grüße,
 
Thema:

ASCI Zeichen in C???

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben