1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Carregar ficheiro no Xcode

Discussão em 'Dúvidas e Suporte Técnico - Apple' iniciada por eastern, 19 de Maio de 2008. (Respostas: 20; Visualizações: 1667)

  1. eastern

    eastern Power Member

    Boas:

    Estou com um problema no Xcode…
    Passa-se que tenho de carregar um ficheiro "stock.dat" com o stock de produtos numa máquina de produtos alimentares.. O problema é que no Windows e no Linux funciona, e no meu Mac não…

    Isto é como tenho:
    Código:
    ficheiro=fopen("stock.dat","r");
    	if(!ficheiro)
    	{
    		printf("Ficheiro stock não encontrado");
    		getchar();
    	}
    	else
    	{
    		printf("Stock carregado para a memória");
    		getchar();
    	}
    
    Só que não consigo carregar este ficheiro… aparece a primeira condição..

    Este está na mesma pasta do projecto e tudo..


    Alguém me consegue ajudar?

    Obrigado
    Cumps
     
  2. Jota.Ce

    Jota.Ce Power Member

    Experimenta adicioná-lo aos ficheiros do projecto.
     
  3. eastern

    eastern Power Member

    Já experimentei adicionar ao projecto, mas nada…
     
    Última edição: 19 de Maio de 2008
  4. eastern

    eastern Power Member

    Alguém tem solução?
     
  5. s e 7 e n

    s e 7 e n Power Member

    Humm..
    Parece que vou ter problemas :S
    Tenho que fazer um projecto e vou ter que usar ficheiros também, vamos la ver se vou ter problemas...

    Soluções: Para já ainda não te sei dizer nada, mas devo de começar a fazer o meu logo a noite...
    Portanto ou logo mais pa noite ou nos próximos dias, posso-te dizer alguma coisa.
     
  6. eastern

    eastern Power Member

    Se quiseres mando-te um ZIP com o projecto que tenho. Podes mandar uma PM com o teu mail ou assim…
    Ainda só estou a começar, mas já deve dar uma ideia do k tenho k fazer.
    Isto é um trabalho de grupo para a cadeira de programação…

    De qualquer das formas agradeço muito a ajuda! ;)
     
  7. nBarroS

    nBarroS Power Member

    eu tou neste projecto, com o eastern...

    passei lhe o meu código, feito no gedit, compilado com o gcc... sem problemas para executar... o eastern abriu no xcode e deu barraco... nao sei pk...
    Cumpz ;)
     
    Última edição: 19 de Maio de 2008
  8. eastern

    eastern Power Member

    [OFF-TOPIC]
    Não deu barraco, simplesmente não lê o ficheiro… (O Xcode NÃO é o gedit)!
    [\OFF-TOPIC]

    Alguma sugestão?
     
  9. s e 7 e n

    s e 7 e n Power Member

    YUP :D

    O meu deu o mesmo problema... andei a lr umas coisas e descobri o problema.

    O problema tem a ver com a directoria onde o Xcode trabalha.
    Para resolveres o problema simplesmente, basta fazeres isto:

    Código:
    char buffer[1000];
    cout << "Current directory is: " << getcwd(buffer, 1000) << "\n";
    
    Adiciona essas 2 linhas de codigo no inicio do programa e ele vai-te dizer onde o Xcode esta a trabalhar... supostamente deve ser na pasta /User
    Metes la o ficheiro e fica a trabalhar :D
    Apartir dai podes inventar pa ficar a trabalhar como queres....
     
  10. eastern

    eastern Power Member

    Não funcionou…
    deu isto:
    Código:
    trabalho.c:18: error: syntax error before ‘<<’ token
    
     
  11. eastern

    eastern Power Member

    Não terá de se adicionar nenhuma livraria em especial? além de stdio.h e stdlib.h para o "cout"?
     
  12. s e 7 e n

    s e 7 e n Power Member

    Pois estas a usar printf, logo não tens o header files do cout.
    Adiciona ai temporariamente tambem isto:

    Código:
    #include <iostream>
    
     
  13. eastern

    eastern Power Member

    Sorry… continua a nao dar…
    neste momento tenho o seguinte erro:
    Código:
    trabalho.c:11: error: syntax error before ‘<<’ token
    trabalho.c:15:20: error: iostream: No such file or directory
    
     
  14. eastern

    eastern Power Member

    Se ajudar neste momento tenho este código:

    Código:
    #include "trabalho.h"
    
    #include <iostream>
    
    #include <stdio.h>
    #include <stdlib.h>
    
    char buffer[1000];
    cout << "Current directory is: " << getcwd(buffer, 1000) << "\n";
    
    
    main()
    {
    	int x;
    
    	FILE *ficheiro;
           printf("#------------------------#\n");
           printf("|                        |\n");
           printf("|  Produtos Alimentares  |\n");
           printf("|                        |\n");
           printf("| A1   A2   A3   A4   A5 |\n");
           printf("|                        |\n");
           printf("| A6   A7   A8   A9  A10 |\n");
           printf("|                        |\n");
           printf("|         Bebidas        |\n");
           printf("|                        |\n");
           printf("|  B1    B2    B3    B4  |\n");
           printf("|                        |\n");
           printf("|  b5    B6    B7    B8  |\n");
           printf("|                        |\n");
           printf("#------------------------#\n");
           printf("|          Abrir         |\n");
           printf("|          Aqui          |\n");
           printf("#------------------------#\n");
           printf("  ||                  ||  \n\n");
    
    
    
    	ficheiro=fopen("stock.dat","r");
    	if(ficheiro)
    	{
    		printf("Ficheiro stock.dat carregado");
    		getchar();
    	}
    	else
    	{
    		printf("ficheiro stock.dat nao encontrado");
    		getchar();
    	}
    }
    
    EDIT - Mudei o ficheiro de C para C++ e agora só me dá o erro k dava antes de adicionar o iostream:

    trabalho.c:11: error: syntax error before ‘<<’ token
     
    Última edição: 20 de Maio de 2008
  15. s e 7 e n

    s e 7 e n Power Member

    Opah ta dificil....
    Troca la por isto:

    Código:
    #include <iostream>
    using namespace std;
    
    Se não der agora ja não sei :o
    Mas por acaso faltava la aquela 2º linha...
     
  16. eastern

    eastern Power Member

    nada… dá o mesmo erro...
    já agora para compilar isto no terminal em c++ é tipo isto?
    g++ trabalho.cpp -o trabalho
     
  17. eastern

    eastern Power Member

    Desculpa lá… isto já é um abuso…
    Por acaso não podes por aqui um exemplo do código que fizeste para eu experimentar?
    É que não queria mesmo ter k ligar o windows pa fazer o trabalho…

    EDIT - Se por acaso puderes fazer isso não estejas a perder tempo hoje que já é tarde… amanha, ou quando puderes, e so no caso de não te importares.

    Cumps
     
  18. s e 7 e n

    s e 7 e n Power Member

    Vamos la ver se o meu trabalha bem ai, pk eu tou a usar com as minhas funções noutros ficheiros....

    Código:
    #include <iostream>
    #include <fstream>
    using namespace std;
    
    
    int AbreLivroPorCMD(char * const argv[])
    {
    
    ifstream Livro;
    
    	Livro.open(argv[1]);
    	
    	if ( Livro.bad() )
    	{
    		cout << "1 SAIDA 1" << endl;
    		return (0);
    	}
    	else
    	{
    		cout << "1 SAIDA 2" << endl;
    		return (1);
    	}
    
    }
    
    
    
    
    int AbreLivroUtilizado()
    {
    
    ifstream Livro;
    
    	Livro.open("Lusiadas.txt");
    	
    	if ( Livro.bad() )
    	{
    		cout << "2 SAIDA 1" << endl;
    		return (0);
    	}
    	else
    	{
    		cout << "2 SAIDA 2" << endl;
    		return (1);
    	}
    }
    
    
    int main (int argc, char * const argv[]) 
    {
    
    cout << endl << argc << endl;
    	
    	if (argc == 2)
    		AbreLivroPorCMD( argv );
    	else
    		AbreLivroUtilizado();
    
    	
    	char buffer[1000];
    	cout << "Current directory is: " << getcwd(buffer, 1000) << "\n";
    
        return 0;
    }
    
    
    
    Isso ai só ainda tem as condições pa abrir o ficheiro e depois as saidas pa confirmar se esta a correr bem...
     
    Última edição: 20 de Maio de 2008
  19. scriptKid

    scriptKid Power Member

    Penso que o getcwd está definido na unistd.h
    Portanto experimentem acrescentar :
    #include <unistd.h>

    Se mais nada resultar, ponham o path absoluto para o ficheiro ...
     
  20. eastern

    eastern Power Member

    @ s e 7 e n

    Men Obrigago pela ajuda toda que me deste! :)
    Foi só meter as livrarias, e tive que tirar o código:

    char buffer[1000];
    cout << "Current directory is: " << getcwd(buffer, 1000) << "\n";

    porque dava aquele erro…
    Depois colei o ficheiro.dat na pasta User… :S

    Já funciona..

    Mais uma vez obrigado pela ajuda!!

    eastern
     

Partilhar esta Página