السلام عليكم
أسعد الله أوقاتكم
أتمنى المساعدة العاجلة جداً جداً
لدي ملف نصي بهذا الشكل
11 66 77 99
22 33 44 55
أود قراءة الأعداد بهذا الشكل
11 و أخزنها في متغير
و 66 و أقوم بتخزينها في متغير
و هكذا ...
أتمنى المساعدة و الله يوفقكم دنيا و آخرة
السلام عليكم
أسعد الله أوقاتكم
أتمنى المساعدة العاجلة جداً جداً
لدي ملف نصي بهذا الشكل
11 66 77 99
22 33 44 55
أود قراءة الأعداد بهذا الشكل
11 و أخزنها في متغير
و 66 و أقوم بتخزينها في متغير
و هكذا ...
أتمنى المساعدة و الله يوفقكم دنيا و آخرة
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
char str[100];
int a[10]={0};
fstream file("c:\\text.txt",ios::in);
int i=0;
while(file.getline(str,100))
{
for(int j=0;j<strlen(str);j+=3)
{
a=atoi(&str[j]);
i++;
}
}
return 0;
}Ali Al-Zyoud كتب:#include<iostream> #include<fstream> using namespace std; int main() { char str[100]; int a[10]={0}; fstream file("c:\\text.txt",ios::in); int i=0; while(file.getline(str,100)) { for(int j=0;j<strlen(str);j+=3) { a=atoi(&str[j]); i++; } } return 0; }
شكراً جزيلاً
a=atoi(&str[j]);
مامعنى الأمر atoi؟
عرفت مصفوفة من نوع char و أعطيها حجم 100 لماذا ؟
و الله يوفقك دنيا و آخره
تم تعديل هذه المشاركة بواسطة GProgrammer في 6 يناير 2011 في 17:01
بسم الله الرحمن الرحيم
atoi هذه الفنكشن تحول من string الى النوع int
عرفت مصفوفة من نوع char و أعطيها حجم 100 لماذا ؟
كل مره اقراء من الملف النصي اخزن بهذه المصفوفه السطر الذي اقرائه وبستخدام ال فنكشن atoi احول النص الى ارقام
Ali Al-Zyoud كتب:بسم الله الرحمن الرحيم
atoi هذه الفنكشن تحول من string الى النوع int
عرفت مصفوفة من نوع char و أعطيها حجم 100 لماذا ؟
كل مره اقراء من الملف النصي اخزن بهذه المصفوفه السطر الذي اقرائه وبستخدام ال فنكشن atoi احول النص الى ارقام
لو كنت حاط الملف النصي بنفس الملف اللي فيه البرنامج يكون إمتداد الملف ( أسم الملف ) فقط بهذا الشكل
text.text
صح ؟؟؟ لأن البرنامج يطلع لي أخطاء
وما أعرف أيه المشكلة
ولو كان عندي أرقام فردية بهذا الشكل
10 12 3 5
10 11 7 8
9 12 6 9
6 7 0 1
هل أضع في خانة العشرات صفر حتى تكون القراءة صحيحة ؟؟
مع الشكر
GProgrammer كتب:لو كنت حاط الملف النصي بنفس الملف اللي فيه البرنامج يكون إمتداد الملف ( أسم الملف ) فقط بهذا الشكل
text.text
صح ؟؟؟ لأن البرنامج يطلع لي أخطاء
وما أعرف أيه المشكلة
ولو كان عندي أرقام فردية بهذا الشكل
10 12 3 5
10 11 7 8
9 12 6 9
6 7 0 1
هل أضع في خانة العشرات صفر حتى تكون القراءة صحيحة ؟؟
مع الشكر
نعم عليك ذلك
لدي نفس المشكل، حيث أريد قراءة مصفوفة من ملف و ووضعها في مصفوفة كالآتي:
#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#define PATH 3
/*
1 0 0
1 0 1
1 1 1
*/
int main()
{
unsigned int a[PATH][PATH], b[PATH][PATH], r[PATH][PATH], i, j, num;
char ch;
FILE *Fmat;
Fmat = fopen("smat.txt","r");
i = j = 0;
if(Fmat == NULL)
{
printf("error \n");
exit(1);
}
while(!feof(Fmat))
{
ch = getc(Fmat);
num = atoi(&ch);
if(&ch != "\n")
i++;
else
{
i = 0;
++j;
}
if(&ch != " ")
a[j] = num;
}
printf("The Matrix readed is :\n");
for(i=0;i<PATH;i++)
{
for(j=0;j<PATH;j++)
{
printf ("%d", a[j]);
printf("\t");
}
printf("\n");
}
return 0;
}لكني أعاني من مشكلة mentation fault.
''اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل بلية''
'اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء منهم و الأموات'
www.it-scoop.com
قم بتغير ال while loop لتصبح كذلك:
while(!feof(Fmat))
{
ch = getc(Fmat);
num = atoi(&ch);
if(ch != '\n')
i++;
else
{
i = 0;
++j;
}
if(ch != ' ')
a[j] = num;
}قمت بإستخدام ASCII في التحويل:
while(!feof(Fmat))
{
num = fgetc(Fmat);
if(num == 10)
{
i = 0;
++j;
}
else if((num == 49) || (num == 48))
{
a[j] = num - 48;
i++;
}
}''اللهم إني أسالك إيمانا دائما وأسألك قلبا خاشعا وأسألك علما نافعا وأسألك يقينا صادقا وأسألك دينا قيما وأسألك العافية من كل بلية''
'اللهم أغفر للمؤمنين و المؤمنات و المسلمين و المسلمات الأحياء منهم و الأموات'
www.it-scoop.com