مشکل:سورس گرفتن اسامی از ورودی

mhabat

Member
با سلام. سورس ماله یک برنامه هست که تعدادی اسامی رو از طریق تابعget.lineمیگیره و هر کدوم رو در یک خط چاپ میکنه. اما وقتی می خوام کامپایل کنم کامپایلره می هنگه. سورس:
کد:
#include<iostream.h>
#include<conio.h>
#include<string.h>
int main()
{ char buffer[80];
cin.getline(buffer,80,'$');
char* name[4];
name[0] = buffer;
int count = 0;
for (char* p=buffer; *p ! '\0'; p++)
if (*p == '\n')
{ *p = '\0'; // end name[count]
name[++count] = p+1; // begin next name
}
cout << "The names are:\n";
for (int i=0; i<count; i++)
cout << "\t" << i << . [" << name[i] << "]" << endl;
getch(); return 0;}
خیلی ممنون
 

swsehsan

Member
سلام من امتحان کردم مشکلی نداشت احتمالا تعداد کاراکتر هایی که وارد میکنی بیشتر از مقداری هست که تعریف کردی به همین خاطر هنگ میکنه
 

پیوست ها

  • 1.jpg
    1.jpg
    161.2 کیلوبایت · بازدیدها: 2

mhabat

Member
سلام.اصلا کامپایل نمیشه که من کارکتر وارد کنم.منظورون اینه که bufferسر ریز میشه؟
من با توربو میزنم مثل شکل زیر میشه.
با devهم کامپایل نشد.سورس:
کد:
#include<iostream.h>
#include<conio.h>
#include<string.h>
using namespace std;
int main()
{ char buffer[80];
cin.getline(buffer,80,'$');
char* name[4];
name[0] = buffer;
int count = 0;
for (char* p=buffer; *p ! '\0'; p++)
if (*p == '\n')
{ *p = '\0'; // end name[count]
name[++count] = p+1; // begin next name
}
cout << "The names are:\n";
for (int i=0; i<count; i++)
cout << "\t" << i << . [" << name[i] << "]" << endl;
getch(); return 0;}
 

پیوست ها

  • ax.PNG
    ax.PNG
    132.6 کیلوبایت · بازدیدها: 3

swsehsan

Member
سلام
کد
کد:
#include<iostream>
#include<conio.h>
#include<string.h>
using namespace std;
int main()
{
    char buffer[80];
cin.getline(buffer,80,'$');
char* name[4];
name[0] = buffer;
int count = 0;
for (char* p=buffer; *p != '\0'; p++)
if (*p == '\n')
{
    *p = '\0'; // end name[count]
name[++count] = p+1; // begin next name
}
cout << "The names are:\n";
for (int i=0; i<count; i++)
cout << "\t" << i<< "[" << name[i] << "]" << endl;
getch();
return 0;
}

با vs و code blocks مشکلی نداره
این خط یک مساوی کم گذاشتی =!p*
کد:
for (char* p=buffer; *[COLOR=Red]p ! [/COLOR]'\0'; p++)
و این خط هم اصلاح کن
کد:
[COLOR=Red]cout << "\t" << i << . [" << name[i] << "]" << endl;[/COLOR]
به
کد:
cout << "\t" << i<< "[" << name[i] << "]" << endl;
 

جدیدترین ارسال ها

بالا