Studium, Ausbildung und Beruf
 StudiumHome   FAQFAQ   RegelnRegeln   SuchenSuchen    RegistrierenRegistrieren   LoginLogin

C: String in eine Datei reinschreiben
Neues Thema eröffnen   Neue Antwort erstellen
Foren-Übersicht -> Informatik-Forum -> C: String in eine Datei reinschreiben
 
Autor Nachricht
Arnop
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 28.05.2005
Beiträge: 107

BeitragVerfasst am: 20 Okt 2007 - 18:31:56    Titel: C: String in eine Datei reinschreiben

Moin,

wäre nett, wenn mir mal jemand helfen könnte. Ich möchte den String "ergebnis", den das folgende Programm am Ende liefert, in eine Datei reinschreiben. Das sollte mit fprintf und fopen zu machen sein.
Wie würdet ihr das machen?

Ich arbeite hier mit Visual C++ 6.0 und Windows XP.

#include <stdio.h>
#include <stdlib.h> //für "exit" Befehl
#include <string.h>
#include <ctype.h> //für "isalpha()" Funktion

int main(void)
{

int a = 0; //Position im Textstring
int b = 0; // "" im Alphabetstring
int c = 0; // "" im Ergebnisstring
int d = 0; //Neue Position im Alphabetstring
int verschiebung = 0;

char alphabet [26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r','s', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
char text[100];
char ergebnis[100];



printf("***Encoder***\n\n");

printf("Bitte Text (ohne Sonderzeichen und Umlaute!!) eingeben:\n"); //Text einlesen
gets(text);

printf("\nGewuenschte Verschiebung eingeben:");
scanf("%i", &verschiebung);

for(a=0; a <= (signed int) strlen(text); a++) //String durchlaufen
{
if(isalpha(text[a])) //wenn Buchstabe gefunden
{
for(b=0; b <= 26; b++) //Alphabet durchlaufen
{
if(tolower (text[a]) == alphabet[b]) //wenn Position im Alphabet gefunden
{
d = ((b+verschiebung) % 26); //Neue Position im Alphabet ermitteln
if(isupper(text[a]))
{
ergebnis[a] = toupper (alphabet[d]); //Großbuchstabe in Ergebnis einsetzen
break; //innere for-Schleife verlassen
}
else
{
ergebnis[a] = alphabet[d]; //Kleinbuchstabe in Ergebnis einsetzen
break; //innere for-Schleife verlassen
}
}
}
}
else
{
ergebnis[a] = text[a]; //Wenns kein Buchstabe war, unverändert aus dem Text übernehmen
}
}
}
EXBS
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 22.03.2006
Beiträge: 41
Wohnort: CB

BeitragVerfasst am: 21 Okt 2007 - 02:09:40    Titel:

Code:
FILE *txt = fopen( "test.txt", "r+" );
if( txt == NULL )
    return 1;

fprintf( txt, "%s", dein_string );


joah ... so würde ich es machen Wink
Arnop
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 28.05.2005
Beiträge: 107

BeitragVerfasst am: 22 Okt 2007 - 20:29:12    Titel:

Hallo EXBS,

danke Dir. Hatte mir schon in etwa sowas gegoogled.


Nur:
Wenn ich so vorgehe, krieg ich nen Fehler:

error C2275: 'FILE' : illegal use of this type as an expression
Wenn ich auf die Meldung klicke, bekomme ich statt dem Programmtext die Datei "stdio.h - definitions/declarations for standard I/O routines
*
* Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved."

auf den Schirm. der Felhlerzeiger liegt in der Zeile

"typedef struct _iobuf FILE;"


Jetzt habe ich statt des C-Kompilers den C++ Compiler verwendet, also Dateiendung .cpp statt .c und es funktioniert....irgendwie komisch.
EXBS
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 22.03.2006
Beiträge: 41
Wohnort: CB

BeitragVerfasst am: 24 Okt 2007 - 21:29:43    Titel:

Was für einen Compiler hast du denn verwendet ? ... mMn gibt es keinen reinen C-Compiler, sie unterstützen eigl. C/C++...
Arnop
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 28.05.2005
Beiträge: 107

BeitragVerfasst am: 24 Okt 2007 - 22:00:16    Titel:

Zitat:
Was für einen Compiler hast du denn verwendet ?


Ms Visual C++ 6.0.

Da gibt's glaube ich zwei verschiedene. Je nachdem, ob man die Programmcodedatei nun .cpp nennt, wie Visual C es standartmässig vorgibt oder .c. Wurde mir jedenfalls so erklärt....
EXBS
Newbie
Benutzer-Profile anzeigen
Newbie


Anmeldungsdatum: 22.03.2006
Beiträge: 41
Wohnort: CB

BeitragVerfasst am: 25 Okt 2007 - 01:09:14    Titel:

Also ich kenne nur MS Visual C++, nur C wüsste ich nicht. Aber ich kann dir auch MS Visual C++ 2005 Express Edition empfehlen. Auch, wenn ich kein Fan von M$ - Produkten bin, muss ich sagen, dass ihnen diese Entwicklungsumgebung gut gelungen ist Wink! Sicher für einen Anfänger viele Funktionen, aber sehr nützlich. Ausserdem ist es kostenlos, nicht wie bei Visual C++ 6.0 Wink, oder gibt es das inzwischen auch kostenlos, weil es ja auch schon echt alt ist?

//Edit: Natürlich musst du C-Programme und C-Code auch mit einer XYZ.c abspeichern. Sonnst gibt es Fehlermeldungen Wink, dann es ist ja kein Cpp - Code.
Arnop
Full Member
Benutzer-Profile anzeigen
Full Member


Anmeldungsdatum: 28.05.2005
Beiträge: 107

BeitragVerfasst am: 25 Okt 2007 - 21:07:37    Titel:

Zitat:
Ausserdem ist es kostenlos, nicht wie bei Visual C++ 6.0 Wink, oder gibt es das inzwischen auch kostenlos, weil es ja auch schon echt alt ist?


Keine Ahnung, aber ich hab meins über das Microsoft "academic alliance" Programm gekriegt.

Und mal ehrlich, wenn man als Studi die Kohle nicht übrig hat, gibt's halt Rapidshare...
Beiträge der letzten Zeit anzeigen:   
Foren-Übersicht -> Informatik-Forum -> C: String in eine Datei reinschreiben
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

Chat :: Nachrichten:: Lexikon :: Bücher :: Impressum