Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Ansi-C, Textdatei auslesen und chars zusamenfügen?

Frage Entwicklung C und C++

Mitglied: ooAlbert

ooAlbert (Level 1) - Jetzt verbinden

09.07.2007, aktualisiert 15.08.2007, 6719 Aufrufe, 5 Kommentare

Hi,

ich komm eigentlich von der Javaschiene und kenn C nicht wirklich aber ich benötige für eine Aufgabe etwas Compiliertes.


Es geht darum, eine TXT zeichenweise auszulesen und dann in einen String zu füllen. Das ganze soll dann ausgegeben werden wenn eine Zeile beendet ist. Da C ja keine Strings beherscht muß man das ja alles über diese Char-Arrays mühsam zusammenkleben.


Jedoch scheint das nicht so zu klappen wie gedacht. In der refference stand das strcat Chars aneinanderkleben kann, bzw. einen Char-Array mit chars auffüllt. Trotzdem meckert der Compiler das die Strcat-anweisung nicht korrekt wäre.


01.
#include <stdio.h>  
02.
#include <stdlib.h>  
03.
#include <conio.h>  
04.
#include <string.h>  
05.
 
06.
main(void)  
07.
{  
08.
FILE *datei;  
09.
 
10.
datei = fopen("123.txt", "r");  
11.
if(NULL != datei) {  
12.
      printf("Konnte Datei öffnen!\n");  
13.
   }  
14.
 
15.
char a;  
16.
char b[100];  
17.
   
18.
while ( a != EOF )  
19.
{  
20.
      a=fgetc(datei);  
21.
      strcat(b[100], a);  
22.
       
23.
      if (a == '\n')  
24.
      {        
25.
       printf("%s", b);  
26.
      }  
27.
}  
28.
return 0;  
29.
}  
30.
 
Mitglied: VoSp
10.07.2007 um 08:23 Uhr
Hallo,

probiers mal mit

strcat(b, a);

Bis dann

VoSp
Bitte warten ..
Mitglied: ooAlbert
10.07.2007 um 13:38 Uhr
nein das bringt nicht, es bleibt bei der fehlermeldung ... also ich bin nir nicht sicher aber kann es sein das man statt der variable einen pointer der auf die variable zeigt verwenden muß? Kann ja sein das diese funktion so beschränkz ist, das die nur die speicheradressen zusammenfügen kann.

Ansonsten würde mir nur noch einfallen den chararray wie jeden normalen array mit indize ablaufen zu lassen und dann an jeder stelle den neuen char einzufügen. Wovon ich glaubte das sowas strcat macht.
Bitte warten ..
Mitglied: VoSp
10.07.2007 um 13:48 Uhr
Tach,

also ich habe das gerade mal ausprobiert, das hier sollte funktionieren:
01.
#include <stdio.h> 
02.
#include <string.h> 
03.
 
04.
int main (void) 
05.
06.
 
07.
  char string[80]; 
08.
 
09.
  strcpy (string,"Das "); 
10.
 
11.
  strcat (string,"ist "); 
12.
  strcat (string,"ein "); 
13.
  strcat (string,"Test."); 
14.
 
15.
  puts (string); 
16.
 
17.
  return 0; 
18.
 
19.
}
Das funktioniert so. Versuch doch mal den String mittels strcpy erstmal zu "initialisieren".

Bis dann
VoSp
Bitte warten ..
Mitglied: Guenni
11.07.2007 um 18:03 Uhr
@ooAlbert

Hi,

Strcat funktioniert nur mit strings.

Außerdem versuchst du mit ...
...
strcat(b[100], a);
...
... jedesmal das gelesene Zeichen in das hundertste
Element eines Arrays einzulesen.

Du mußt schon einen Zähler mitführen, in welchen Element
die gelesene Zeile eingefügt werden soll.

01.
#include "stdafx.h" 
02.
#include <stdio.h>  
03.
#include <stdlib.h>  
04.
#include <conio.h>  
05.
#include <string.h>  
06.
 
07.
 
08.
int main(void)  
09.
{  
10.
FILE *datei;  
11.
 
12.
datei = fopen("c:\\123.txt", "r");  
13.
int i=0;  
14.
char b[100];  
15.
   
16.
while (!feof(datei)){  
17.
      b[i]=fgetc(datei); 
18.
	  i++; 
19.
}  
20.
b[i]='\0'; 
21.
printf("%s",b); 
22.
fclose(datei); 
23.
return 0;  
24.
}
Gruß
Günni

PS.:

Da C ja keine Strings beherscht muß man das ja alles über diese
Char-Arrays mühsam zusammenkleben.

C kann sehr wohl mit strings umgehen:

char *s;

Allerdings muß man für *char s eine Speicherresevierung vornehmen
Bitte warten ..
Mitglied: lowbyte1
15.08.2007 um 07:45 Uhr
das zeigt mir wider mal, das man nichts behaupten sollte wen man es selber nicht weis...


(es gibt nur eins 0 or 1) [lowbyte]
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Zeile einer Textdatei mit Batch auslesen (2)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Google Android
Textdatei auf SD Karte auslesen funktioniert nicht (Oneplus One) (4)

Frage von 115122 zum Thema Google Android ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(2)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

LAN, WAN, Wireless
gelöst Statische Routen mit ISC-DHCP Server für Android Devices (22)

Frage von terminator zum Thema LAN, WAN, Wireless ...

Exchange Server
gelöst Migration Exchange 2007 zu 2013 - Public Folder teilweise weg (16)

Frage von Andy1987 zum Thema Exchange Server ...