http://pastebin.com/84JrwpHe এই কোডের ১৭ নাম্বার লাইনটা কাজ করছে না। কি মিসিং আছে যদি কেউ বলতেন। আমি name স্পেস সহ ইনপুট নিতে চাচ্ছি। নরমালি তো কাজ করছে ক্লাসে কেন কাজ করছে না?

#include <iostream>

#include <string>

using namespace std;

int main ()

{

string name;

cout << "Please, enter your full name: ";

getline (cin,name);

cout << "Hello, " << name << "!\n";

return 0;

}

( সি এর হেডার ফাইল ছাড়া )

asked 18 Sep '16, 12:26

Error%20403's gravatar image

Error 403
875

edited 18 Sep '16, 13:15

Tamanna%20Nishat%20Rini's gravatar image

Tamanna Nishat Rini ♦♦
3.0k312


আপনি যখন cin ও getline() একসাথে ব্যবহার করবেন । তখন একটু সতর্কতা অবলম্বন করতে হবে। cin, white space char (enter, newline, space .... ) গুলিকে অটোমেটিক বাদ দিয়ে দেয় । কিন্তু getline() সেটা করে না । এই জন্য আপনি যখন cin দিয়ে ইনপুট নিয়ে এন্টার দিচ্ছেন তখন সেটা name এর মধ্যে জমা করে রাখতেছে । তাই কোন name ইনপুট না নিয়ে সরাসরি marks এ জন্য ইনপুট নিচ্ছে ।

এই সমস্যা সমাধান করতে হলে আপনি getline() এর আগে cin.ignore() বা getcher() অ্যাড করে দিতে পারেন । তাহলে এই সমস্যা হবে না ।

উপরের যে কোড লিখেছেন সেটা কোন সমস্যা করছে না । এর কারণ এখানে আপনি সুধু getline() ব্যবহার করেছেন । কোন cin ব্যবহার করেন নি । এখানেও যদি আপনি cin আর getline() একসাথে ব্যবহার করেন তবে একই সমস্যাই পড়বেন ।

ক্লাস দিয়ে স্পেস সহ ইনপুট নেয়ার জন্য GetData() ফাংশন টা নিচের মত করে একা লাইন অ্যাড করুন,

void Student::GetData()
{
    cout<<"Enter Roll : ";
    cin>>Roll;
    cout<<"Enter name : ";

    cin.ignore(); // Add this line to your code :D

    getline(cin,name);
    cout<<"Enter Marks : ";
    cin>>Marks;
}

এখন মনে হয় আপনি আপনার সমস্যা বুঝতে পারছেন ।

ধন্যবাদ :)

permanent link

answered 18 Sep '16, 13:50

menon's gravatar image

menon
4.7k334

edited 18 Sep '16, 13:56

ধন্যবাদ :)

permanent link

answered 18 Sep '16, 16:04

Error%20403's gravatar image

Error 403
875

edited 18 Sep '16, 16:05

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:

×13

question asked: 18 Sep '16, 12:26

question was seen: 539 times

last updated: 18 Sep '16, 16:05