#include <stdio.h>
void viewbooks()
{
FILE *f;
char c, word[50]={0};
int k=0,i,n;
if((f=fopen("books.txt","r"))==NULL)
printf("error");
c=fgetc(f);
n=0;
for(;;)
if(c==EOF)
if(n==0)
printf("File is empty");
break;
}
printf("date: ");
for(i=0;i<k;i++)
printf("%c",word[i]);
word[k]=c;
k++;
if(c=='"' || c==' ')
n++;
if(n==1)
printf("book 1:\n");
if(c=='"' && n%3!=0)
printf("name: ");
else if(n%3!=0)
printf("author: ");
if(n%3==0)
for(i=0;i<k-1;i++)
word[i]=0;
if(c==' ')
k=0;
else
word[0]=c;
k=1;
printf("\n");
printf("book %d:\n",n/3+1);
fclose(f);
int main()
viewbooks();
return 0;
Пример входных данных(в файле books.txt):
"AAA" X.Y.Xyzf 1234
"Bb" A.V.Ytrewq 7777
"" P.M.Qwerty 1011
"" I.U.Qwerty 1113
Выходные данные:
book 1:
name: AAA
author: X.Y.Xyzf
date: 1234
book 2:
name: Bb
author: A.V.Ytrewq
date: 7777
book 3:
name:
author: P.M.Qwerty
date: 1011
book 4:
author: I.U.Qwerty
date: 1113
Примечания:
В файле books.txt название книги должно быть в двойных кавычках. Название книги, автор и дата отделяются друг от друга только одним пробелом.
Внимание! Хром жрет строки! Сейчас поправлю
Laboratorna2.cs
//////////////////////////////////////////////////
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Laboratorna2{
class Laboratorna2
{
public static void A() {
Console.WriteLine("Привет, это метод А()");
}
public static void B(int n, int m) {
Console.WriteLine(n + m);
Console.WriteLine(n - m);
Console.WriteLine(n * m);
Console.WriteLine(Convert.ToDouble(n) / m);
}
public static double C(double k, double l, double m) {
return (k + l + m) / 3;
}
public static string N11(ref int Numb) {
Numb = 11 * Numb; return "";
}
public static int Line(ref string line) {
char[] arr = line.ToCharArray();
Array.Reverse(arr);
line = new string(arr);
return line.Length;
}
static void Main(string[] args) {
Console.WriteLine("Метод А:"); A();
Console.WriteLine("Метод B:"); B(5, 7);
Console.WriteLine("Метод C: {0}", C(4.33, 13.6, -14.88439435));
Console.WriteLine("Geometry.S: {0}", Geometry.S(5));
double P, S;
Geometry.Par(5, out P, out S);
Console.WriteLine("Geometry.Par: P={0}; S={1}", P, S);
int N = 7;
Console.WriteLine("Метод N11: Число = {0}; Результат = {2}", N, N11(ref N), N);
string kekus = "Lol Kek Cheburek!";
Console.WriteLine("Метод Line: Исходная строка = \"{0}\"; Длина = {1}; Результирующая строка = \"{2}\";", kekus, Line(ref kekus), kekus);
Console.ReadKey();
}
}
}
Geometry.cs
\\\\\\\\\\\\\\\\\\\\\\\\\
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Laboratorna2 {
class Geometry {
public static double S(double R) {
return Math.PI * Math.Pow(R, 2);
}
public static void Par(double R, out double S, out double P) {
S = Math.PI * Math.Pow(R, 2);
P = 2 * Math.PI * R;
}
}
}
#include <stdio.h>
void viewbooks()
{
FILE *f;
char c, word[50]={0};
int k=0,i,n;
if((f=fopen("books.txt","r"))==NULL)
printf("error");
c=fgetc(f);
n=0;
for(;;)
{
c=fgetc(f);
if(c==EOF)
{
if(n==0)
{
printf("File is empty");
break;
}
printf("date: ");
for(i=0;i<k;i++)
printf("%c",word[i]);
break;
}
word[k]=c;
k++;
if(c=='"' || c==' ')
{
n++;
if(n==1)
printf("book 1:\n");
if(c=='"' && n%3!=0)
printf("name: ");
else if(n%3!=0)
printf("author: ");
if(n%3==0)
printf("date: ");
for(i=0;i<k-1;i++)
printf("%c",word[i]);
for(i=0;i<k;i++)
word[i]=0;
c=fgetc(f);
if(c==EOF)
break;
if(c==' ')
k=0;
else
{
word[0]=c;
k=1;
}
printf("\n");
if(n%3==0)
printf("book %d:\n",n/3+1);
}
}
fclose(f);
}
int main()
{
viewbooks();
return 0;
}
Пример входных данных(в файле books.txt):
"AAA" X.Y.Xyzf 1234
"Bb" A.V.Ytrewq 7777
"" P.M.Qwerty 1011
"" I.U.Qwerty 1113
Выходные данные:
book 1:
name: AAA
author: X.Y.Xyzf
date: 1234
book 2:
name: Bb
author: A.V.Ytrewq
date: 7777
book 3:
name:
author: P.M.Qwerty
date: 1011
book 4:
name:
author: I.U.Qwerty
date: 1113
Примечания:
В файле books.txt название книги должно быть в двойных кавычках. Название книги, автор и дата отделяются друг от друга только одним пробелом.