الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

تحويل من char الى int في الملفات

بدأه بنت المنتدى في 19 يونيو 2012 · 2 رد · 558 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

ارجو الرد على سؤالي عند القيام بقراءة الاعداد من ملف لجمعها فاني اريد اولا تحويلها الى int ولكن لم اجد الدالة المناسبة

فارجو التكرم بالرد على سؤالي ومرفق لكم البرنامج

d1.open("d:\\data.txt" ,ios:: in );

d1>>x;

*f=x;

s=atoi(*f);

cout<<s+1<<endl;

while(d1.eof()==0)

{

sum=sum+int(x);

d1>>x;

}

cout<<sum;

d1.close();

المشكلة التي اواجهها ان الناتج يظهر خاطئ فيا ريت تفيدوني بالحل ...

اللهم علمنا ما ينفعنا وانفعنا بما علمتنا

#2

أختي الكريمة أزن أن الخطأ في هذا الجزء من الكود :

sum=sum+int(x);

فعليك كتابة :

sum=sum+s;

لأنك في الحالة الأولى قمت بجمع لقيمة المؤشر للمصفوفة على الأغلب ..

جربي هذا التعديل ...

وهناك سؤال آخر بالنسبة ل

*f=x;

إذا كان f مؤشر وكذلك x فالعملية السابقة ستؤدي إلى نتائج خاطئة ...

ويمكنك تحرير مشاركتك واستخدام : cIs26822.png

لكتابة الكود بتنسيق أفضل .. وكما قال الأخ محمد بوجود الكود كاملا يسهل التصحيح أكثر

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 19 يونيو 2012 في 20:40

#3
بنت المنتدى كتب:

ارجو الرد على سؤالي عند القيام بقراءة الاعداد من ملف لجمعها فاني اريد اولا تحويلها الى int ولكن لم اجد الدالة المناسبة

فارجو التكرم بالرد على سؤالي ومرفق لكم البرنامج

d1.open("d:\\data.txt" ,ios:: in );

d1>>x;

*f=x;

s=atoi(*f);

cout<<s+1<<endl;

while(d1.eof()==0)

{

sum=sum+int(x);

d1>>x;

}

cout<<sum;

d1.close();

المشكلة التي اواجهها ان الناتج يظهر خاطئ فيا ريت تفيدوني بالحل ...

هذه طريقة

#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream d1;
d1.open("d:\\data.txt" ,ios:: in );
int Number = 0, Numbers = 0;
while(d1.good())
{
char iCharCode = d1.get();
Number = atoi(&iCharCode);
Numbers += Number;
cout<<"Number = " << Number << "\n";
cout<<"Current Result = " << Numbers << endl;
}
cout<<"Result = " << Numbers << endl;
d1.close();
return 0;
}

و هذه طريقة أخرى

#include <iostream>
#include <fstream>
using namespace std;
int main () {
ifstream d1;
d1.open("d:\\data.txt" ,ios:: in );
int Number = 0, Numbers = 0;
while(d1.good())
{
char iCharCode = d1.get();
if (iCharCode > 47 && iCharCode < 58) // Numbers ASCII Character Codes From 48 To 57
{
Number = (iCharCode - 48);
Numbers += Number;
cout<<"Number = " << Number << "\n";
cout<<"Current Result = " << Numbers << endl;
}
}
cout<<"Result = " << Numbers << endl;
d1.close();
return 0;
}

تحية طيبة

تم تعديل هذه المشاركة بواسطة Wolf_Oman في 20 يونيو 2012 في 15:32

1

Wolf_Oman

صرح السماء

wolf9228

ناقوس الخطر

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…