#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<string.h>
#include<windows.h>
FILE *data,*tmp;
int reg_std();
int mod_data();

struct student
{
    char name[30];
    char prog[15];
    char ID[15];
    char intake[10];

};
int main()
{
    int i=1;
    while(i)
    {
        reg_std();
        printf("Enter 0 to stop and 1 to continue\n");
        scanf("%d",&i);
    }
    mod_data();
    return 0;
}
int reg_std()
{
    struct student s;
    char intc[2];
    int flag=0;
    strcpy(s.intake,"Intake ");
    data=fopen("data.txt","a+");
    if(!data)
    {
        printf("Data File can not be opened\n");
    }
    else
    {
        printf("Enter The Name of Student: ");
        fflush(stdin);
        gets(s.name);
        fprintf(data,"%-20.30s",s.name);

        printf("Enter Student`s ID No: ");
        fflush(stdin);
        gets(s.ID);
        fprintf(data,"%-15.15s",s.ID);

        printf("Enter Intake No: ");
        fflush(stdin);
        gets(intc);
        strcat(s.intake,intc);
        fprintf(data,"%-10.10s",s.intake);
        printf("Enter Program Name: ");
        fflush(stdin);
        gets(s.prog);
        fprintf(data,"%-10.15s\n",s.prog);
        fclose(data);
        flag=1;
    }
    if(flag)
        return 0;
    else
        return -1;
}
int mod_data()
{
    struct student mod_d;
    char id[15];
    char intc[2];
    printf("Enter student`s ID No whose record has to be modified\n");
    scanf("%s",id);
    data=fopen("data.txt","r");
    if(data==NULL)
    {
        printf("Data file can not be opened\n");
        return 0;
    }

    tmp=fopen("tmp.txt","w");
    if(tmp==NULL)
    {
        printf("Temporary file can not be created\n");
        return 0;
    }
     while(!feof(data))
        {
            fscanf(data,"%s %s %s %s",mod_d.name,mod_d.ID,mod_d.intake,mod_d.prog);
            printf("%s\t%s\t%s\t%s\n",mod_d.name,mod_d.ID,mod_d.intake,mod_d.prog);
            if(strcmp(id,mod_d.ID)==0)
            {
                printf("Enter modified name of the student: ");
                fflush(stdin);
                gets(mod_d.name);
                fputs(mod_d.name,tmp);
                fputs(mod_d.ID,tmp);
                printf("Enter modified intake no: ");
                fflush(stdin);
                gets(intc);
                strcpy(mod_d.intake,"Intake ");
                strcat(mod_d.intake,intc);
                fputs(mod_d.intake,tmp);
                printf("Enter modified program name: ");
                gets(mod_d.prog);
                fputs(mod_d.prog,tmp);

            }
            else
            {
                fputs(mod_d.name,tmp);
                fputs(mod_d.ID,tmp);
                fputs(mod_d.intake,tmp);
                fputs(mod_d.prog,tmp);
            }
        }
        fclose(data);
        fclose(tmp);
        return 0;
}

asked 10 Jan '16, 12:16

Anisur%20Rahman%20Tonu's gravatar image

Anisur Rahman Tonu
20720


আপনার এখানে কিছু ভুল আছে যেমনঃ

strcpy(s.intake,"Intake ");

এটিতে স্পেস সমস্যা করতেছে । এটিকে এভাবে লিখুন ।

strcpy(s.intake,"Intake-");

তারপরেও আপনার কিছু লজিকাল প্রবলেম থাকবে । যেমন আপনি এখানে এডিট করতে চাচ্ছেন যে কোন একটি সে ক্ষেত্রে আপনার সমস্যা হচ্ছে । এ জন্য আপনাকে প্রথমে সার্চ করে বের করতে হবে আপনি কি এডিড করতে চাচ্ছেন ।

ফাইলে স্ট্রাকচার ইনপুট আউটপুট অনেক সহজে নেওয়া যায়, fwrite,fread ব্যাবহার করে । এতো ঝামেলা করতে হয় না। আপনি এই টিউটোরিয়ালটি দেখতে পারেন । (লিঙ্ক)

permanent link

answered 11 Jan '16, 04:11

Sharif%20Chowdhury's gravatar image

Sharif Chowdhury
3.5k111

fwrite() ব্যাবহার করে file এ output দিলে কিছু উল্টা পাল্টা character আসে । মানে ধরুন আমি যে name input দিয়েছি ওটার length 15 আর আমি name এর জন্য space রাখসি ৩০ । তো এই বাকি ১৫ টা character কখনো white space কখনো বা unknown কিছু character File এ write হয়। কিন্তু video tutorial টায় এমন টা হয় নি। এটা ঠিক করব কিভাবে ?

(22 Jan '16, 10:41) Anisur Rahman Tonu

রাখতে পারে সেটি সমস্যা না । আপনি যখন read করবেন দেখবেন তখন কোনো সমস্যা হবে না ।

(22 Jan '16, 10:55) Sharif Chowdhury
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×402
×4

question asked: 10 Jan '16, 12:16

question was seen: 818 times

last updated: 22 Jan '16, 10:55