Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Program zamieniający komendy na kod asemblera - problem z nazwą pliku

Ostatnio zmodyfikowano 2012-01-21 14:18
Autor Wiadomość
RazzorFlame
Temat założony przez niniejszego użytkownika
Program zamieniający komendy na kod asemblera - problem z nazwą pliku
» 2012-01-21 13:29:37
Nie chodzi o to ze program ma zla nazwe czy co. Chodzi o to ze chce zrobic tak aby program analizował komendy zawarte w pliku i tworzył plik assemblera (*.asm) o tej samej nazwie (np. "plik.$$$" na "plik.$$$.asm"). Nie wiem jak do args[] w funkcji main dodać ".asm". Probowalem:
C/C++
char * fullname = args[ 1 ] + ".asm"; //nie działa
string fullname = args[ 1 ] + ".asm"; //nie działa
char fullname[] = args[ 1 ] + ".asm"; //nie działa
Byc moze popełniam jakiś bardzo głupi błąd lecz nie umiem się z tym uporać. POMOCY!
P-49023
pekfos
» 2012-01-21 13:36:04
C/C++
std::string str( argv[ 1 ] );
str += ".asm";

W sumie, słabo znasz podstawy, skoro próbowałeś tak jak w pierwszej i trzeciej linii :P
P-49025
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2012-01-21 13:50:32
Pewnie kolejny głupi błąd. Mam kod:
C/C++
#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

int main( int argc, char * args[] )
{
    string name =( args[ 1 ] );
    name += ".asm";
   
    getch();
    return 0;
}

I gdy otwieram program wyskakuje mi takie cóś:

terminate called after throwing an instance of 'std::logic_error'
  what():  basic_string::_S_construct NULL not valid

This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.

I program sie zamyka...
P-49026
malan
» 2012-01-21 13:54:25
Nie przesłałeś żadnego argumentu do programu, a więc
argc
 jest równe 1. Z tego wynika, że
args
 jest jednoelementową tablicą, a Ty odnosisz się do elementu drugiego.
C/C++
int main( int argc, char * args[] )
{
    if( argc > 1 )
    {
        std::string name =( args[ 1 ] );
        name += ".asm";
    } else
    {
        std::cout << "Nie zapomniales o czyms?!" << std::endl;
    }
   
    getch();
    return 0;
}
P-49027
RazzorFlame
Temat założony przez niniejszego użytkownika
» 2012-01-21 14:02:31
Malan, stary jestes wielki :) Dziekuje!
C/C++
string temat = "THE END"; //zamykam
P-49029
pekfos
» 2012-01-21 14:18:47
Nie wystarczy napisać "zamykam" -.- Następnym razem zamknij temat.
P-49031
« 1 »
  Strona 1 z 1