#include <iostream>
#include <fstream>
#include <string>
using std::cin;
using std::string;
bool openFile(std::ifstream &sourceFile, string fileName);
bool isAnotherWord(string newStr, string fileName, std::ifstream &sourceFile);
void editFile(string str, std::ifstream &sourceFile, string fileName);
int main(){
setlocale(LC_ALL,"Russian");
string str;
//инициируете str так как вам нужно; если у вас много переменных стринг, то лучше обернуть это в std::vector<string> и сделать цикл по его элементам
//т.к. я не знаю как вы это хотите реализовать то:
str = "string";
string fileName = "text.txt";
std::ifstream sourceFile;
if(!openFile(sourceFile, fileName))
{
std::ofstream createFile(fileName);
}
editFile(str, sourceFile, fileName);
}
void editFile(string str, std::ifstream &sourceFile, string fileName)
{
if(isAnotherWord(str, fileName, sourceFile))
{
std::ofstream exp(fileName);
exp << str << std::endl;
}
}
bool openFile(std::ifstream &sourceFile, string fileName){
sourceFile.close();
sourceFile.clear();
sourceFile.open(fileName);
if(!sourceFile)
{
return false;
}
else
return true;
}
bool isAnotherWord(string newStr, string fileName, std::ifstream &sourceFile){
string str;
if(openFile(sourceFile, fileName))
{
getline(sourceFile, str);
}
if(str == newStr)
return false;
else
return true;
}
#include <iostream>
#include <fstream>
#include <string>
using std::cin;
using std::string;
bool openFile(std::ifstream &sourceFile, string fileName);
bool isAnotherWord(string newStr, string fileName, std::ifstream &sourceFile);
int main(){
setlocale(LC_ALL,"Russian");
string str;
string failName = "text.txt";
std::ifstream sourceFile;
if(!openFile(sourceFile, failName))
{
std::ofstream sourceFile(failName);
}
while(cin >> str)//While Ctrl-Z (Ctrl-D *nix)
{
if(isAnotherWord(str, failName, sourceFile))
{
std::ofstream exp(failName);
exp << str << std::endl;
}
}
}
bool openFile(std::ifstream &sourceFile, string fileName){
sourceFile.close();
sourceFile.clear();
sourceFile.open(fileName);
if(!sourceFile)
{
return false;
}
else
return true;
}
bool isAnotherWord(string newStr, string fileName, std::ifstream &sourceFile){
string str;
if(openFile(sourceFile, fileName))
{
getline(sourceFile, str);
}
if(str == newStr)
return false;
else
return true;
}
также '?' может быть частью тернарного оператора (к спрингу не имеет никакого отношения)
<условие> ? <выражение при true> : <выражение при false>