C/C++ "undefined reference to 'WinMain'" hatası

Main fonksiyonuyla deniyorsunuz umarım? Yani int main(){return 0;} gibi.
Bu şekilde çalıştı OnlineGDB'de.

C++:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Structure to store passenger information
struct passenger {
    char name[50];
    char departure[50];
    char arrival[50];
    char date[10];
    int seat_number;
    struct passenger* next;
};

// Global head pointer of the linked list
struct passenger* head = NULL;

int checkDuplicate(char* name);

// Function to add a new passenger
void addPassenger() {
    struct passenger* newPassenger = (struct passenger*)malloc(sizeof(struct passenger));

    printf("Enter passenger name: ");
    scanf("%s", newPassenger->name);

    // Check for duplicate passenger
    if (checkDuplicate(newPassenger->name)) {
        printf("Passenger with the same name already exists.\n");
        free(newPassenger);
        return;
    }

    printf("Enter departure: ");
    scanf("%s", newPassenger->departure);

    printf("Enter arrival: ");
    scanf("%s", newPassenger->arrival);

    printf("Enter date: ");
    scanf("%s", newPassenger->date);

    printf("Enter seat number: ");
    scanf("%d", &(newPassenger->seat_number));

    newPassenger->next = NULL;

    if (head == NULL) {
        head = newPassenger;
    } else {
        struct passenger* current = head;
        while (current->next != NULL) {
            current = current->next;
        }
        current->next = newPassenger;
    }

    printf("Passenger added successfully.\n");
}

// Function to check for duplicate passenger
int checkDuplicate(char* name) {
    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            return 1; // Duplicate found
        }
        current = current->next;
    }
    return 0; // No duplicate found
}

// Function to delete a passenger
void deletePassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }

    char name[50];
    printf("Enter passenger name to delete: ");
    scanf("%s", name);

    struct passenger* current = head;
    struct passenger* prev = NULL;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            if (prev == NULL) {
                head = current->next;
            } else {
                prev->next = current->next;
            }
            free(current);
            printf("Passenger deleted successfully.\n");
            return;
        }
        prev = current;
        current = current->next;
    }

    printf("Passenger not found.\n");
}

// Function to search and display passenger information
void searchPassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }

    char name[50];
    printf("Enter passenger name to search: ");
    scanf("%s", name);

    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            printf("Name: %s\n", current->name);
            printf("Departure: %s\n", current->departure);
            printf("Arrival: %s\n", current->arrival);
            printf("Date: %s\n", current->date);
            printf("Seat Number: %d\n", current->seat_number);
            return; // exit function when passenger found
        }
        current = current->next;
    }

    printf("Passenger not found.\n");
}

int main(){return 0;}
 
Son düzenleyen: Moderatör:
Herhalde gerek yok diye paylasmadiginiz düşündüm ama son hali diye paylaşıyorsunuz, main yok. Main olmadan, main koymayı bilmeden nasıl bu kadar yazdığınızda hayran kaldım.
O kadar bilen birinin typedef struct kullanmaması da şaşırttı. Yorumlar da biraz suphelendirdi.
Free ettikten sonra Pointer'ı NULL yapmak da iyi olduğu bilinen bir C alışkanlığıdır.

Ustteki mesajdaki gibi düz main tanımlayabilirsiniz ama program hiçbir şey yapmaz.
Dolu main olması daha iyi olur. Kodu yazmanızı isteyen yer)/kişi bir şeyler belirtmiştir.
 
Son düzenleyen: Moderatör:
Ustteki mesajdaki gibi düz main tanımlayabilirsiniz ama program hiçbir şey yapmaz.
Dolu main olması daha iyi olur. Kodu yazmanızı isteyen yer)/kişi bir şeyler belirtmiştir.

Tabii ki, sadece en azından syntax error olmadığını, programın compile'ladığını görmesi açısından boş main koydum. Belki de fonksiyonlar tam istendiği gibi de çalışmıyordur. Ama gerçektende main koyulmamış olması biraz ilginç :)
 
Birkaç hata var.

İlk olarak Main yok. Main olmadan hata almanız normal. Main ekleseniz bile Void'leri çağırmazsanız doğal olarak program bir işe yarayacağını sanmıyorum :)

Bu şekilde kod yazıp Main'i unuttuğunuzu düşünmüyorum. Büyük ihtimal hazır bir kod veya ChatGPT ile oluşturulmuş bir kod.
 
Kod kendi yazdığım kod telefondan giriyorum foruma bilgisayardan kodu telefona aktarırken karakter limitinden tamamını yollamamışım kodun yeni farkettim kusura bakmayın teşekkür ederim hepinize.Tam son hali budur çalışıyor.
@Vavien. @Eray T @Kurisu Rin @566156

C:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

// Structure to store passenger information
struct passenger {
    char name[50];
    char departure[50];
    char arrival[50];
    char date[10];
    int seat_number;
    struct passenger* next;
};

// Global head pointer of the linked list
struct passenger* head = NULL;

int checkDuplicate(char* name);

// Function to add a new passenger
void addPassenger() {
    struct passenger* newPassenger = (struct passenger*)malloc(sizeof(struct passenger));

    printf("Enter passenger name: ");
    scanf("%s", newPassenger->name);

    // Check for duplicate passenger
    if (checkDuplicate(newPassenger->name)) {
        printf("Passenger with the same name already exists.\n");
        free(newPassenger);
        return;
    }

    printf("Enter departure: ");
    scanf("%s", newPassenger->departure);

    printf("Enter arrival: ");
    scanf("%s", newPassenger->arrival);

    printf("Enter date: ");
    scanf("%s", newPassenger->date);

    printf("Enter seat number: ");
    scanf("%d", &(newPassenger->seat_number));

    newPassenger->next = NULL;

    if (head == NULL) {
        head = newPassenger;
    } else {
        struct passenger* current = head;
        while (current->next != NULL) {
            current = current->next;
        }
        current->next = newPassenger;
    }

    printf("Passenger added successfully.\n");
}

// Function to check for duplicate passenger
int checkDuplicate(char* name) {
    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            return 1; // Duplicate found
        }
        current = current->next;
    }
    return 0; // No duplicate found
}

// Function to delete a passenger
void deletePassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }

    char name[50];
    printf("Enter passenger name to delete: ");
    scanf("%s", name);

    struct passenger* current = head;
    struct passenger* prev = NULL;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            if (prev == NULL) {
                head = current->next;
            } else {
                prev->next = current->next;
            }
            free(current);
            printf("Passenger deleted successfully.\n");
            return;
        }
        prev = current;
        current = current->next;
    }

    printf("Passenger not found.\n");
}

// Function to search and display passenger information
void searchPassenger() {
    if (head == NULL) {
        printf("No passengers in the list.\n");
        return;
    }

    char name[50];
    printf("Enter passenger name to search: ");
    scanf("%s", name);

    struct passenger* current = head;
    while (current != NULL) {
        if (strcmp(current->name, name) == 0) {
            printf("Name: %s\n", current->name);
            printf("Departure: %s\n", current->departure);
            printf("Arrival: %s\n", current->arrival);
            printf("Date: %s\n", current->date);
            printf("Seat Number: %d\n", current->seat_number);
            return; // exit function when passenger found
        }
        current = current->next;
    }

    printf("Passenger not found.\n");
}

int main() {
    int choice;

    while (1) {
        printf("\n*** Airline Reservation System Menu ***\n");
        printf("1. Add Passenger\n");
        printf("2. Delete Passenger\n");
        printf("3. Search Passenger\n");
        printf("4. Exit\n");
        printf("Enter your choice: ");

        scanf("%d", &choice);

        switch (choice) {
            case 1:
                addPassenger();
                break;

            case 2:
                deletePassenger();
                break;

            case 3:
                searchPassenger();
                break;

            case 4:
                printf("Exiting program...\n");
                return 0;

            default:
                printf("Invalid choice. Please try again.\n");
                break;
        }
    }

    return 0;
}
 

Yeni konular

Geri
Yukarı