برای خواندن از فایل قطعه کد زیر چگونه کار می‌کند. اطلاعات فایل عدد می‌باشند. - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

وبـــلاگ هــفت خــط کــد


آموزش های برنامه نویسی
۴۵ نفر آنلاین
۰ عضو و ۴۵ مهمان در سایت حاضرند

برای خواندن از فایل قطعه کد زیر چگونه کار می‌کند. اطلاعات فایل عدد می‌باشند.

0 امتیاز
23 بازدید
اطلاعات فایل ورودی 
class Input

{

public:

	double x;

	double y;

	int nx;

	int ny;

	double w;

	void InputFile(string Filename)

	{

		ReadFile(Filename);

	}

	void ReadFile(string Filename)

	{

		ifstream Reader(Filename.c_str());

		if (!Reader)

			cout << "Sorry, This code could not open file for reading ..." << endl;

		char c, C;

		int count = 0;

		C = '*';

		while (C != '&')

		{

			count++;

			c = '*';

			while (c != '=')

				Reader >> c;

			switch (count)

			{

			case 1:

				Reader >> x;

				break;

			case 2:

				Reader >> y;

				break;

			case 3:

				Reader >> nx;

				break;

			case 4:

				Reader >> ny;

				break;

			case 5:

				Reader >> w;

				break;

			default:

				cout << "Error. Please check your input file" << endl;

			}

			Reader >> C;

		}

		Reader.close();

	}

};

 

فایل ورودی:

$START$
x        = 6.0
y        = 4.0
nx       = 60.0
ny       = 80.0
w        = 0.75
&END&

 

سوال شده آبان 22 بوسیله ی smht (امتیاز 8)  

1 پاسخ

0 امتیاز

به جای کد بالا از c++ برای انجام اینکار استفاده کنید.

#include <stdafx.h>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>

using namespace std;
int main()
{

	const std::string file_name = R"(d:\test.txt)";
	std::ifstream file(file_name.c_str());

	if (!file.is_open())
		return -1;

	std::string line;
	std::vector<float> values;
	while (std::getline(file,line))
	{
		auto index = line.find("=");
		if (index != -1) {
			std::string numb_str = std::string(line.begin() + index + 1, line.end());
			auto value = std::stof(numb_str);
			values.push_back(value);

		}
	}
	file.close();

	for (auto value : values)
		cout << value << endl;

    return 0;
}

 

پاسخ داده شده آبان 22  بوسیله ی farnoosh (امتیاز 2,350)   5 12 47
...