• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

C zmiana znaków char podawanych w argumentach na int

Aruba Cloud PRO i VPS, Openstack, VMWare, MS Hyper-V
0 głosów
84 wizyt
pytanie zadane 23 grudnia 2019 w C i C++ przez BezBarwny Użytkownik (700 p.)

siema chce w miejsce fseek(plik, TUTAJ, 0) dac argument podawany z konsoli udało mi sie (przynajmniej tak mi sie wydaje wysłac juz argument przez strukture ale nie potrafie zmienic podanego argumentu w liczbe int próbowałem zrobic to za pomocą atoi w strukturze ale w wyniku zamiast wypisywac interesujacy mnie znak zawsze wypisuje znak rąbu z znakiem zapytani

#include <unistd.h>
#include <pthread.h>
#include <stdio.h>
#include <cstdlib>
#include <string>
typedef struct param {
    int p1,p2,id;
}Param;




bool czy_istnieje(char* arg){
	auto *param = (Param*)arg;
long int m = param->p1;

//sprawdzanie czy plik istnieje jesli nie wysylam false do main
   FILE *plik=fopen(arg, "r");
    printf("Ścieżka pliku: \n%s\n", arg);
    if(plik==NULL){
        printf("plik nie istnieje\n");
        fclose(plik);
        return false;
        }
    else    {
    //jesli istnieje to wysylam true
        printf("Plik znajdujacy się w ścieżce %s istnieje\n", arg);
         fseek(plik, m , 0);
         printf("%c\n", fgetc(plik));
        fclose(plik);
        return true;
    }
}


void *thread_function(void *arg) {
    auto *param = (Param*)arg;
    long int m = param->p1*param->p2;

    printf("ID watku to: %d\nTID: %lu \n",param->id,pthread_self());
    return (void*)m;
}

int main(int argc, char **argv) {
    int rfv = argc;
    int err;
    int cnt,id=1;
    Param param;


    int w = (rfv) / 2;
    long int MOut[w];



    if(argc==4){
        if(!(czy_istnieje(argv[1])))
        for(cnt = 1; cnt < (rfv - 1); cnt+=2) {
            param.p1 = atoi(argv[cnt]);
            param.p2 = atoi(argv[cnt+1]);
            param.id = id;
            id++;
            

            if(err != 0)
                fprintf(stderr, "Error creating the thread");
        }
        
    }
    return 0;
}

a

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 434 wizyt
pytanie zadane 11 grudnia 2019 w C i C++ przez amtrax Dyskutant (9,560 p.)
0 głosów
2 odpowiedzi 307 wizyt
pytanie zadane 24 października 2019 w C i C++ przez KumberTwo Dyskutant (8,270 p.)
+1 głos
3 odpowiedzi 168 wizyt

90,829 zapytań

139,505 odpowiedzi

313,598 komentarzy

60,325 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Sklep oferujący ćwiczenia JavaScript, PHP, rozmowy rekrutacyjne dla programistów i inne materiały

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...