Консультация № 181220
11.12.2010, 16:27
54.00 руб.
0 3 1
Здравствуйте, уважаемые эксперты! Прошу Вас ответить на следующий вопрос:

Нужно написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых.

Нужно чтобы программа работала на Dev-C++

Обсуждение

Неизвестный
11.12.2010, 21:16
общий
это ответ
Здравствуйте, Скачков Антон Юрьевич!

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

FILE *f;
char *str;
int file_size;

int check_two_digits(char *s)
{
for (int i=0; i<strlen(s); i++)
{
if (s[i]==',') return(1);
}
return(0);
}

int main(int argc, char *argv[])
{
if (argc < 2)
{
printf ("Не указан файл\n");
return(1);
}

f=fopen(argv[1],"rb");
if (f)
{
fseek(f,0,SEEK_END);
file_size=ftell(f);
rewind(f);
str=(char *)malloc(file_size);

while((fgets(str,file_size,f))!=NULL)
{
if (check_two_digits(str)==0) printf("%s",str);
}

free(str);
fclose(f);
}

return(0);
}
2
Я просил выпонить программу на Dev-C++ а не на визуал студио...
Неизвестный
13.12.2010, 19:06
общий
Кто Вам сказал, что этот код под Visual Studio?
Для компиляции укажите опцию gcc -std=c99
Неизвестный
13.12.2010, 20:09
общий
Ладно, спасибо за труд, дело в том что я написал нужную программу, препод принял..
Код:
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <fstream>
#include <string.h>

using namespace std;
using std::cout;
using std::cin;
using std::endl;
char fileName[] = "c:\\txt.txt";

void readFile()
{
ifstream fileIn;
fileIn.open(fileName);
char* tmpStr = new char[1000];
char* tmp = new char[500];
tmpStr[0]=0;
bool comma = false;
while(fileIn >> tmp)
{
strcat(tmpStr, tmp);
strcat(tmpStr, " ");
if(tmp[strlen(tmp)-1] == ',')
comma = true;
if(tmp[strlen(tmp)-1] == '.' || tmp[strlen(tmp)-1] == '!' || tmp[strlen(tmp)-1] == '?')
{
if(!comma)
cout << tmpStr;
tmpStr[0] = 0;
comma = false;
}
}

fileIn.close();
delete[] tmpStr;
}

int main()
{
setlocale(LC_ALL,"Russian");
system("cls");
cout << "Ïðåäëîæåíèÿ, íå ñîäåðæàùèå çàïÿòûõ: " << endl << endl;
readFile();
getch();
return 0;
}
Форма ответа