View Single Post
ישן 21-02-06, 19:40   # 1
eur2
משתמש - היכל התהילה
 
מיני פרופיל
תאריך הצטרפות: Oct 2005
מיקום: אשדוד, וכמובן ישראל
הודעות: 1,395

eur2 לא מחובר  

בעיה עם תוכנית

PHP קוד:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

FILE *pointer=fopen("Source","a+t");

void add_phone() {}
void search_FN();
void search_LN();
void show_phones() {}


int main(int argc ,char *argv[]) {
    
    if(
argc!=2) {
        
printf("\n\n");
        
printf("Welcome To The Phone Book!\n");
        
printf("--------------------------\n");
        
printf("1. Add A Number!\n2. Search A Number By First Name!\n3. Search A Number By Last Name!\n4. Show All Numbers!\n\n");
        return -
1;
    }
    
    
int index=atoi(argv[1]);
    
    
    

    if(!
pointer) {
        
printf("Fetal ERROR, file could not open!\n");
        return -
1;
    }

    switch(
index) {
        case 
1add_phone();
            break;
        case 
2search_FN();
            break;
        case 
3search_LN();
            break;
        case 
4show_phones();
            break;
        default: 
printf("Your request could not be found, Please try again!\n\n");
    }
    


    return 
0;
//main

void search_FN() {
        
char copy[256],name[100],test[100];
        
printf("Please Enter The Name: ");
        
gets(name);

        do {
            
fgets(copy,255,pointer);
            
            for(
int index=0;copy[index]!=' ';index++)
                
test[index]=copy[index];
            
test[index]=NULL;
            if(
strcmp(test,name)==0)
                
puts(copy);
        } while(!
feof(pointer));

}


void search_LN() {

        
char copy[256],name[100],test[100],count=0;
        
printf("Please Enter The Name: ");
        
gets(name);

        do {
            
fgets(copy,255,pointer);
            
            for(
int index=0retro=0;count<2;index++) {
                if(
count==0||copy[index]==' ') {
                    
retro++;
                    if(
copy[index]==' ')
                        
count++;
                    continue;
                }
                
test[index-retro]=copy[index];
            }
            
test[index-retro]=NULL;
            if(
strcmp(test,name)==0)
                
puts(copy);
        } while(!
feof(pointer));

אוקיי התוכנית כמו שאתם רואים היא בשפת C פשוטה וטובה, מקומפלת ב - VISUAL C++ עכשיו יש לי בעיה כזאת ברגע שאני מפעיל את התוכנית ונותן לה ערכים 2 או 3 (נכון לעכשיו זה מה שאני הכנסתי) היא נותנת לי את השגיאה הסטנדרטית של וינדוס XP.

יש הצעות מה יכול להיות הבאג בתוכנית דרך אגב התחביר בקובץ Source עובד ככה:
Name family 0000000000

ורק לידע כללי, כשניסיתי להריץ פונקציה פונקציה בנפרד הם עבדו רק בתוכנית עצמה זה לא עובד לי.

ואני מודע לזה שיש פונקציות חיפוש מוכנות אבל המורה שלי אמר לא להשתמש בהם...

תודה לעוזרים.
  Reply With Quote