Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2009, 21:56   #1
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию проблема с преобразованием строки в число в С++

подскажити как здесь зделать чтоб складывались не строки а числа?
Код:
#include<iostream.h>
#include<stdio.h>
const
char dl=80;
char s[dl],v[dl],r[dl];
int main(){
	FILE *f=fopen("C:\\1.txt", "w+");{
		cin>>s>>v;
		fputs(s,f);
		fseek(f,0, SEEK_SET);
		fgets(r,dl,f);
		cout<<r+r<<"\n";
		fclose(f);
	};
	return 0;
};
т.е. кпримеру ввёл я число 5 а вывести должен 10.
Lorden вне форума Ответить с цитированием
Старый 27.03.2009, 22:12   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

В файле stdlib.h есть функция преобразования строки в число:
Код:
int atoi ( const char * str );
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.03.2009, 12:50   #3
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

чёт несовсем понял куда
Код:
int atoi ( const char * str );
нада подставить(
Lorden вне форума Ответить с цитированием
Старый 28.03.2009, 13:26   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Код:
cout<<atoi(r)+atoi(r)<<"\n";
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.03.2009, 21:55   #5
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Код:
cout<<atoi(r)+atoi(r)<<"\n";
спасибо за ответ но возникли ещё вопросы( никак немогу разобраться
fgets этож чтение символов из потока так ведь? тогда почему вот в этом коде:
Код:
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
const char dl=80;
char s[dl];
int main(){
	FILE *f=fopen("C:\\1.txt", "w+");    //1
	fseek(f,0,SEEK_SET);                   //2
	fgets(s,dl,f);{                             //3
		cout<<s;                        //4
	fclose(f);
	};
	return 0;
};
уменя почемуто удаляется всё содержимое txt файла( как я понял тут происходят такие действия:
1) открытия файла f; 2) указываем на начало строки; 3) в s записываем 80 символов из файла f; 4) выводим записаные символы на экран.
Подскажити где ошибка? и если нетрудно объяснити пожалуста ато чёт как работать с текстом в С++ ваще непонима(

Последний раз редактировалось Lorden; 28.03.2009 в 22:04.
Lorden вне форума Ответить с цитированием
Старый 28.03.2009, 22:08   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
уменя почемуто удаляется всё содержимое txt файла
потому что вы затираете файл при открытии (режим "w+").
Используйте "r+".
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 28.03.2009, 23:21   #7
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

наверное я так и неразберусь как написать программу которую задали) задача выглядит так:
Описать структуру содержащую след поля:1)фамилия студента 2)группа 3)успеваемость в виде 5 оценок.
Написать программу выполняющую след действия: 1) ввод с клавиатуры данных типо студент. 2) Ввод из файла данных типа студент. 3) Сохранение данных в файл. 4)Вывод на дисплет фамилии студентов, если средний бал больше 4-ёх.
помогити её написать, мб тогда я хотябы чучуть пойму чё да как тут(
Код:
struct stud {
		char f[20];
		char g[10];
		int y[5];
	};

	stud a[3];
	for (i=0; i<3;i++){
	sr=0;
	n=0;
	cout<<"Vedity family "<<i+1<<" Ctudenta\n";
	cin>>a[i].f;
		cout<<"Vvedity gpynnyу "<<i+1<<" Ctudenta\n";
	cin>>a[i].g;
	cout<<"Vvedity ycneBaemoctb "<<i+1<<" Ctudenta\n";
	for (y=0; y<5; y++)
		cin>>a[i].y[y];
		for (y=0; y<5; y++)
	sr=sr+a[i].y[y];
	sr=sr/5;
Lorden вне форума Ответить с цитированием
Старый 28.03.2009, 23:55   #8
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Lorden
Так продолжайте.. Пока все так.
Пара советов:
Сделайте это через функции. Будет намного легче.
И вместо 3 определите константу (например, const int N=3) и работайте с ней.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 29.03.2009, 12:35   #9
Lorden
Форумчанин
 
Регистрация: 11.08.2008
Сообщений: 139
По умолчанию

я просто немогу понять как вывести все строки txt файла на экран? и потом вводя чёнить с клавиатуры созавалась новая строка

Последний раз редактировалось Lorden; 29.03.2009 в 12:46.
Lorden вне форума Ответить с цитированием
Старый 29.03.2009, 12:54   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
я просто немогу понять как вывести все строки txt файла на экран?
То есть вы не знаете, как работать с файлами? Если так, то тут уж помочь не смогу.

У вас ведь есть структура. Вот и определите для нее функции чтения и записи.

Вот вам небольшой пример:
Код:
#include<iostream>
#include <fstream>
using namespace std;

struct st
{
 int x;
 int y;
};

void writeSt(fstream &f, st t)
{
 f<<t.x<<" ";
 f<<t.y<<" ";
}
void getFromSt(fstream &f, st &t)
{
 f>>t.x;
 f>>t.y;
}

int main(){
st t,s,z,a;
fstream in;

t.x =1; t.y = 2;
s.x = 4; s.y = 34;
in.open("test.txt",ios::out);
writeSt(in,t);
writeSt(in,s);
in.close();
in.open("test.txt",ios::in);
getFromSt(in,z);
getFromSt(in,a);
cout<<z.x<<" "<<z.y<<endl;
cout<<a.x<<" "<<a.y;

in.close();

cin.get();
return 0;
};
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод из строки в число и обратно AsmBeginer Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 22.05.2010 18:49
Проблема с перебором значений дат (число.месяц) Serval Помощь студентам 2 20.01.2009 22:18
помогите с преобразованием типов ~LiS~ Общие вопросы Delphi 5 26.05.2008 21:59
Как найти уникальное число для символьной строки? Paul Hindenburg Общие вопросы Delphi 13 14.02.2008 10:00
Извлечь число из строки и присвоить его переменной. Adamant Общие вопросы C/C++ 3 12.11.2007 07:24