.txt Datei einlesen und anzeigen

Hallo,

wenn dein Programm die Datei nicht öffnen kann, liegt es vermutlich daran, dass sie nicht gefunden wird. Versuche mal den vollständigen Pfad bei "fopen" anzugeben.
Ansonsten: Um aus einer Datei zu lesen, musst du "fgets" nehmen; "gets" liest nur von der Standardeingabe.

Gruß
MCoder
 
Hallo,

wenn dein Programm die Datei nicht öffnen kann, liegt es vermutlich daran, dass sie nicht gefunden wird. Versuche mal den vollständigen Pfad bei "fopen" anzugeben.
Ansonsten: Um aus einer Datei zu lesen, musst du "fgets" nehmen; "gets" liest nur von der Standardeingabe.

Gruß
MCoder

er aht sie gefunden nur er zeigt in der console keine ausgabe an

Ich will ja das er den inhalt meiner txt einliest und dann anzeigt.

Geh ich in den menupunkt 2 also zum einlesen kommt garnichts und das Programm hält an
 
so hier mal das ganze Programm :

PHP:
// Dominik Amann
// version 0,1 Beta
// http://domi.theinviseble.de

#include <iostream>
#include <fstream>
#include <windows.h>
#include <shellapi.h>
#include <stdlib.h>
#include <string.h>

using namespace std;



int main()
{
  char handy[50];  
  char phone[50];
  char name[50];
  char name2[50];
  char myname[50];
  char cText[250];
  int web;
  int menu;
  cout <<"\n";  
  cout <<"   Adressbuch version 0.1 Beta by Domi\n";
  cout <<"\n";
  cout <<"\n";
  cout <<"  Dein Name ?\n";
  cout <<"\n";
  cin >> myname;
  cout <<"\n";
  cout <<"\n";
  cout << "   "<< myname << " moechtest du ein neuen Kontakt einfuegen (1) ?\n"; 
  cout <<"\n";
  cout << "  "<< " oder moechtest du alle Kontake anzeigen lassen (2) ? \n";
  cout <<"\n";
  cin >> menu;
  if (menu == 1)
  {
  cout << "   Gib den Vornamen des Kontaktes ein : \n";
  cout << "\n";
  cin >> name;
  cout <<"\n";
  cout << "   Gib den Nachnamen an :; \n";
  cout <<"\n";
  cin >> name2; 
  cout <<"\n";
  cout <<"\n";
  cout <<"   "<< myname << " ,gib die Telefonnummer an : \n";
  cout <<"\n";
  cin >> phone;
  cout <<"\n";
  cout <<"    Gib die Handynummer ein : \n";
  cout <<"\n";
  cin >> handy;
  cout <<"\n";
  FILE* fp; 
  fp = fopen("add.txt","a");
  fprintf(fp, "Vorname :      \n");
  fprintf(fp, name );
  fprintf(fp, "\n");
  fprintf(fp, "Nachname :     \n");
  fprintf(fp, name2);
  fprintf(fp, "\n");
  fprintf(fp, "Telefonnummer: \n");
  fprintf(fp, phone);
  fprintf(fp, "\n");
  fprintf(fp, "Handynummer :   \n");
  fprintf(fp, handy);
  fprintf(fp, "\n");
  fclose(fp); 
  } 
  cout <<"\n";
  cout <<"\n";
  if ( menu == 2)
  {
  FILE* fp;
  if (fp = fopen("add.txt", "r")) //lesen
  { 
  gets(cText);   //liest string bis zum zeilenende
  cout << cText;
  while(!(feof(fp)))   // bis datei zu ende ist
  {
    gets(cText);   //liest string bis zum zeilenende
    cout << cText ;
  }
  }
  else
  {
  cout << "\n";  
  cout << "\n";  
  cout << " can not open file !! \n";
  cout << "\n";
  }      
  }
  cout << "\n";  
  cout << "\n";  
  cout << "\n";            
  cout <<"\n";
  cout <<"              Moechtest du meine Website besuchen? \n";
  cout <<"\n";
  cout << "\n";  
  cout << "\n";  
  cout <<"\n";
  cout <<"    Drueck 1 fuer ja 2 fuer nein \n";
  cin  >> web;
  cout <<"\n";
  cout << "\n";  
  cout << "\n";  
  if ( web == 1)
  {
  ShellExecute(NULL, "open", "http://domi.theinviseble.de", NULL, NULL, SW_SHOW);  
  } 
  cout <<"\n";
  cout <<"\n";
  cout <<"\n";  
  system("PAUSE");	
  return 0;
}



Bitte editiert den code und verbessert ihn, oder schirebt einfach was ich machen soll.

Ich werd langsam verrückt :( " nichts geht " ^^



thx im vorraus
 
Hattest du nicht vorher geschrieben, dass er in den else-Zweig springt und dir sagt dass er die Datei nicht öffnen kann :confused:

Hatte ich doch geschrieben: Du musst "fgets" zum Lesen nehmen.

Gruß
MCoder

jo aber das hat sich behoben da hab cih ausversehn ein buchstabe mehr eingetipt.

Also muss ich aus dem "gets" "fgets" machen?

thx für die antwort
 
PHP:
  {
  FILE* fp;
  if (fp = fopen("add.txt", "r")) //lesen
  { 
  fgets(cText);   //liest string bis zum zeilenende
  cout << cText;
  while(!(feof(fp)))   // bis datei zu ende ist
  {
    fgets(cText);   //liest string bis zum zeilenende
    cout << cText ;
  }
  }

hab jetzt das gets durch fgets geändert, geht aber immer noch nicht,
den jetzt kommen wieder fehlermeldungen
 
Zuletzt bearbeitet:
Lss dir doch nicht alles aus der nase ziehen -.-
Was für Fehlermeldungen? oO

also:

236 C:\Dev-Cpp\include\stdio.h too few arguments to function `char* fgets(char*, int,
236 C:\Dev-Cpp\include\stdio.h too few arguments to function `char* fgets(char*, int, FILE*)'
86 C:\Documents and Settings\D©MI\Desktop\adressbuch\fertig\adressbuch.cpp at this point in file
 
Liebe Leute, schaut's euch doch bei Problemen mal die Beschreibung zu den Bibliotheksfunktionen an. Außerdem sollte man sich doch denken können, dass der bei "fopen" erhaltene Zeiger noch für irgendwas gut sein könnte :rolleyes:

Die Funktion "fgets" benötigt mehr als einen Parameter (was übrigens auch schon der Compiler in seiner Fehlermeldung angemerkt hatte):
C++:
fgets(cText , sizeof(cText), fp);  // char * fgets ( char * str, int num, FILE * stream );
Gruß
MCoder
 
Zurück