problema programma c++!!!!!!?

E un semplice programma di lettura file...il file esiste e contiene dei nomi...quando vado a compilare non ci sono problemi..ma poi quando eseguo a video esce solo lo schermo nero! Qualcuno sa dirmi dov'è che sbaglio?!

questo è il programma:

#include<iostream>

#include<stdio.h>

#include <stdlib.h>

using namespace std;

int main ()

{

FILE* nm;

nm = fopen("nomi.txt","r");

char nomi[1000];

while ( fgets(nomi,1000,nm) != NULL);

cout << nomi;

system("pause");

return 0;

}

Comments

  • manca il controllo se il file viene effettivamente aperto per l'input

    FILE* nm;

    nm = fopen("nomi.txt","r");

    // ----- righe da aggiungere

    if ( nm == NULL ) {

    perror( "Errore in apertura file" );

    exit(1);

    }

    // ----

  • Non ho ben capito che procedura hai usato ma in c++ si usano gli stream per raccogliere dati dal file e te stai usando tutto tranne che quelli

    #include <iostream>

    #include <fstream>

    using namespace std;

    ifstream nm;

    int main(){

    nm.open("nomi.txt");

    char nomi[1000];

    int a(0);

    while(nm.get(nomi[a]))

    a++;

    for(int b=0;b<a;b++)

    cout<<nomi[b];

    cout<<endl;

    system("pause");

    return 0;

    }

    Questo è un uso degli stream(e si usano gli stream in c++), ovviamente nome.txt deve essere nella stessa cartella dell'eseguibile(altrimenti bisogna aggiungere il path)

  • Hai messo il file nella stessa cartella dell'eseguibile? Altrimenti non lo trova e devi scrivere tutto il percorso

  • include <stdio.h>

    #define MaxK 100

    int main()

    {

    int k = 0, n[MaxK + 1], x;

    FILE *f = fopen("zaporedje.txt", "rt");

    while (1 == fscanf(f, "%d", &x)) {

    if (x > k) n[x] = 0;

    k = x; n[k]++; }

    printf("%d", k); for (x = 1; x <= k; x++) printf(" %d", n[x]); printf("\n");

    fclose(f); return 0;

    }

Sign In or Register to comment.