• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 21:46
CEST 03:46
KST 10:46
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Team TLMC #5 - Finalists & Open Tournaments0[ASL20] Ro16 Preview Pt2: Turbulence5Classic Games #3: Rogue vs Serral at BlizzCon9[ASL20] Ro16 Preview Pt1: Ascent10Maestros of the Game: Week 1/Play-in Preview12
Community News
Weekly Cups (Sept 8-14): herO & MaxPax split cups3WardiTV TL Team Map Contest #5 Tournaments1SC4ALL $6,000 Open LAN in Philadelphia7Weekly Cups (Sept 1-7): MaxPax rebounds & Clem saga continues29LiuLi Cup - September 2025 Tournaments3
StarCraft 2
General
Team Liquid Map Contest #21 - Presented by Monster Energy #1: Maru - Greatest Players of All Time Weekly Cups (Sept 8-14): herO & MaxPax split cups SpeCial on The Tasteless Podcast Team TLMC #5 - Finalists & Open Tournaments
Tourneys
WardiTV TL Team Map Contest #5 Tournaments Maestros of The Game—$20k event w/ live finals in Paris RSL: Revival, a new crowdfunded tournament series Sparkling Tuna Cup - Weekly Open Tournament SC4ALL $6,000 Open LAN in Philadelphia
Strategy
Custom Maps
External Content
Mutation # 491 Night Drive Mutation # 490 Masters of Midnight Mutation # 489 Bannable Offense Mutation # 488 What Goes Around
Brood War
General
Diplomacy, Cosmonarchy Edition [ASL20] Ro16 Preview Pt2: Turbulence BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ ASL20 General Discussion
Tourneys
[ASL20] Ro16 Group C [IPSL] ISPL Season 1 Winter Qualis and Info! Is there English video for group selection for ASL [ASL20] Ro16 Group B
Strategy
Simple Questions, Simple Answers Muta micro map competition Fighting Spirit mining rates [G] Mineral Boosting
Other Games
General Games
Stormgate/Frost Giant Megathread Path of Exile General RTS Discussion Thread Nintendo Switch Thread Borderlands 3
Dota 2
Official 'what is Dota anymore' discussion LiquidDota to reintegrate into TL.net
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Heroes of StarCraft mini-set
TL Mafia
TL Mafia Community Thread
Community
General
US Politics Mega-thread Things Aren’t Peaceful in Palestine Canadian Politics Mega-thread Russo-Ukrainian War Thread The Big Programming Thread
Fan Clubs
The Happy Fan Club!
Media & Entertainment
Movie Discussion! [Manga] One Piece Anime Discussion Thread
Sports
2024 - 2026 Football Thread Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Linksys AE2500 USB WIFI keeps disconnecting Computer Build, Upgrade & Buying Resource Thread High temperatures on bridge(s)
TL Community
BarCraft in Tokyo Japan for ASL Season5 Final The Automated Ban List
Blogs
The Personality of a Spender…
TrAiDoS
A very expensive lesson on ma…
Garnet
hello world
radishsoup
Lemme tell you a thing o…
JoinTheRain
RTS Design in Hypercoven
a11
Evil Gacha Games and the…
ffswowsucks
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1455 users

The Big Programming Thread - Page 45

Forum Index > General Forum
Post a Reply
Prev 1 43 44 45 46 47 1031 Next
Thread Rules
1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution.
2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20)
3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible.
4. Use [code] tags to format code blocks.
tofucake
Profile Blog Joined October 2009
Hyrule19086 Posts
April 06 2011 16:25 GMT
#881
On April 07 2011 01:24 kuresuti wrote:
Show nested quote +
On April 06 2011 23:54 tofucake wrote:
The solution is &


Could you clarify?

Where's the fun in that?

A hint though: you don't have any way to access data from loadList()
Liquipediaasante sana squash banana
kuresuti
Profile Blog Joined December 2009
1393 Posts
April 06 2011 16:33 GMT
#882
On April 07 2011 01:25 tofucake wrote:
Show nested quote +
On April 07 2011 01:24 kuresuti wrote:
On April 06 2011 23:54 tofucake wrote:
The solution is &


Could you clarify?

Where's the fun in that?

A hint though: you don't have any way to access data from loadList()


Could you give me another hint as to why the process with storing something in names[] works with addName() but not with loadList() aswell? I don't see a difference between the two.
fabiano
Profile Blog Joined August 2009
Brazil4644 Posts
Last Edited: 2011-04-06 16:44:06
April 06 2011 16:43 GMT
#883
On April 06 2011 20:56 kuresuti wrote:

int main()
{
string s[MAX_SIZE];
int i = 0;
loadList(s, "asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return 0;
}

I've removed some unnecessary code from there, to keep it clean. Any ideas as to what could be wrong?


The parameter names is passed by value and not reference, right? Or is it reference because its an array?

I'vent programmed in C/C++ for a while, but if its really passed by value, then you know why it doesnt work, just pass the reference with &
"When the geyser died, a probe came out" - SirJolt
kuresuti
Profile Blog Joined December 2009
1393 Posts
April 06 2011 16:50 GMT
#884
On April 07 2011 01:43 fabiano wrote:
Show nested quote +
On April 06 2011 20:56 kuresuti wrote:

int main()
{
string s[MAX_SIZE];
int i = 0;
loadList(s, "asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return 0;
}

I've removed some unnecessary code from there, to keep it clean. Any ideas as to what could be wrong?


The parameter names is passed by value and not reference, right? Or is it reference because its an array?

I'vent programmed in C/C++ for a while, but if its really passed by value, then you know why it doesnt work, just pass the reference with &


It is passed as reference. It works fine in addName(), which indicates that I am doing it right, or that the compiler is doing it wrong but ending up right :O
fabiano
Profile Blog Joined August 2009
Brazil4644 Posts
April 06 2011 16:54 GMT
#885
Have you tried to use names[p] = &t ?
"When the geyser died, a probe came out" - SirJolt
Uriel_SVK
Profile Joined April 2010
Slovakia427 Posts
Last Edited: 2011-04-06 17:07:02
April 06 2011 17:03 GMT
#886
On April 06 2011 20:56 kuresuti wrote:
+ Show Spoiler +


int main()
{
string s[MAX_SIZE];
int i = 0;
loadList(s, "asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return 0;
}


I've removed some unnecessary code from there, to keep it clean. Any ideas as to what could be wrong?


ok, not a pro in c/c++, but i think the problem might be that you are not returning the value of names[]. You pass s[] to names[], you add lines to names[], but you do not return lines[] to s[].
In c# i would add ref, but I think in c/c++ it is done with pointers.

Or maybe this could work
+ Show Spoiler +


int main()
{
string s[MAX_SIZE];
int i = 0;
s = loadList("asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(const string fileName)
{
string names[MAX_SIZE];
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return names;
}



sorry if it wont help


buhhy
Profile Joined October 2009
United States1113 Posts
April 06 2011 17:04 GMT
#887
On April 05 2011 04:31 Siniyas wrote:
General question for guys with programming experience in java. Is good to learn JSP at this time? I find it very intrigueing and would like to get into it, but all over the it is written, that its dying, since it is now deprecrated as a view for servlets and it seems JSF is taking over.

So what should i learn if i want to get into dynamic web design with java?


JSF is somewhat different in concept from JSP. It's an additional layer above JSP that manages the backing bean-rendering technology bridge for you. JSF manages a lot of stuff like states for you. JSF 1.2 is built upon JSP, while JSF 2.0 has moved onto facelets for rendering, so JSF and JSP are longer very related.

Personally, I like JSF, but I feel it still has quite a way to go, especially with dynamic web design. Using JSF with Javascript is a royal pain in the ass, though JSF 2.0 has fixed a lot of issues.

Definitely learn what JSP + Servlets are, and how they work, but I'd lean towards JSF.
buhhy
Profile Joined October 2009
United States1113 Posts
Last Edited: 2011-04-06 17:14:38
April 06 2011 17:10 GMT
#888
On April 07 2011 02:03 Uriel_SVK wrote:

Show nested quote +
On April 06 2011 20:56 kuresuti wrote:

int main()
{
string s[MAX_SIZE];
int i = 0;
loadList(s, "asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return 0;
}

I've removed some unnecessary code from there, to keep it clean. Any ideas as to what could be wrong?


ok, not a pro in c/c++, but i think the problem might be that you are not returning the value of names[]. You pass s[] to names[], you add lines to names[], but you do not return lines[] to s[].
In c# i would add ref, but I think in c/c++ it is done with pointers.

Or maybe this could work
+ Show Spoiler +


int main()
{
string s[MAX_SIZE];
int i = 0;
s = loadList("asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(const string fileName)
{
string names[MAX_SIZE];
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return names;
}



sorry if it wont help


Arrays ARE pointers in C++. Seems weird that the code doesn't work. He's not missing the reference symbol.
kuresuti
Profile Blog Joined December 2009
1393 Posts
April 06 2011 17:42 GMT
#889
Okay I've made some progress. I had a menu loop running in which I call loadList(), doesn't work. But if I skip the menu loop altogether and just run loadList() in main it DOES work.

I have no clue why..... as I'm typing this I realize I'm stupid. I have a variable which keeps track of how many elements names contains, but I forgot to add the number of elements loaded in the loadList() function, all my other functions use the counter to output the array etc. etc., which happens to be zero after loadList().

I am very sorry for wasting your time

Thanks for the help though!
buhhy
Profile Joined October 2009
United States1113 Posts
April 06 2011 18:06 GMT
#890
On April 07 2011 02:42 kuresuti wrote:
Okay I've made some progress. I had a menu loop running in which I call loadList(), doesn't work. But if I skip the menu loop altogether and just run loadList() in main it DOES work.

I have no clue why..... as I'm typing this I realize I'm stupid. I have a variable which keeps track of how many elements names contains, but I forgot to add the number of elements loaded in the loadList() function, all my other functions use the counter to output the array etc. etc., which happens to be zero after loadList().

I am very sorry for wasting your time

Thanks for the help though!


Paste all your code?
kuresuti
Profile Blog Joined December 2009
1393 Posts
Last Edited: 2011-04-06 18:19:36
April 06 2011 18:16 GMT
#891
On April 07 2011 03:06 buhhy wrote:
Show nested quote +
On April 07 2011 02:42 kuresuti wrote:
Okay I've made some progress. I had a menu loop running in which I call loadList(), doesn't work. But if I skip the menu loop altogether and just run loadList() in main it DOES work.

I have no clue why..... as I'm typing this I realize I'm stupid. I have a variable which keeps track of how many elements names contains, but I forgot to add the number of elements loaded in the loadList() function, all my other functions use the counter to output the array etc. etc., which happens to be zero after loadList().

I am very sorry for wasting your time

Thanks for the help though!


Paste all your code?


+ Show Spoiler [Code] +
#include "Lab3.h"
#include "func.h"

void menuLoop()
{
string names[MAX_SIZE];
//string *names = new string[MAX_SIZE];

int curNum = 0;
char input = 0;

loadList(names, "asd.txt");

while(input != '7')
{
system("cls");

cout << " *** NAMNLISTA ***\n\n 1. Lägg till namn\n 2. Skriv namnlista\n 3. Ta bort namn\n 4. Sortera\n 5. Sök\n 6. Spara\n 7. Avsluta\n\n Välj alternativ: ";
cin >> input;

switch(input)
{
case '1':
addName(names, curNum);
break;

case '2':
outputList(names, curNum);
break;

case '3':
removeName(names, curNum);
break;

case '4':
sortList(names, curNum);
break;

case '5':
searchList(names, curNum);
break;

case '6':
saveList(names, curNum, "asd.txt");
break;

case '7':

break;

default:
cout << endl;
cout << " Ogiltigt menyalternativ!\n\n";
system("pause");
break;
}

}
}

int addName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

names[curSize] = t;

curSize++;

return 0;
}

int removeName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i])
{
names[i] = "0";

if(i < curSize - 1)
{
for(int j = i; j < curSize; j++)
{
names[j] = names[j+1];
}
}

i = curSize;
}
}

names[curSize] = "0";
curSize--;

return 0;
}

int searchName(const string names[], const int curSize)
{

return 0;
}

int outputList(const string names[], const int curSize)
{
system("cls");

for(int i = 0; i < curSize; i++)
cout << names[i] << endl;

cout << endl;

system("pause");

return 0;
}

int sortList(string names[], const int curSize)
{
system("cls");

string temp[curSize];
string tmp;

for(int i = 0; i < curSize; i++)
{
temp[i] = names[i];
//strupr((char*)temp[j].c_str());

}


for(int pass = 0; pass < curSize - 1; pass++)
for(int i = 0; i < curSize - 1; i++)
if(temp[i] > temp[i + 1])
{
tmp = names[i];
names[i] = names[i+1];
names[i+1] = tmp;

tmp = temp[i];
temp[i] = temp[i+1];
temp[i+1] = tmp;
}

cout << "Listan sorterad!\n\n";
system("pause");
return 0;
}

int saveList(const string names[], const int curSize, const string fileName)
{
system("cls");
fstream t;

t.open(fileName.c_str(), ios::out);

if(t.is_open())
{
for(int i = 0; i < curSize; i++)
{
t << names[i];

if(i < curSize - 1)
t << endl;
}

cout << "Filen \"" << fileName << "\" är sparad!\n\n";
}
else
{
cout << "Kunde inte skapa filen! \n\n";
return 0;
}

t.close();
system("pause");
return 0;
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t);
names[p] = t;
p++;
}

f.close();

for(int i = 0; i < 5; i++)
cout << names[i] << endl;

system("pause");
return 0;
}

int searchList(const string names[], const int curSize)
{
system("cls");

string t;
cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i])
{
cout << "Namnet hittades!\n\nDet är på positionen " << i + 1 << " i namnlistan.\n\n";
system("pause");
return 0;
}
}

cout << "Namnet finns inte i listan!\n\n";

return 0;
}

(Most of that code is WIP)
I might aswell post all of it.

All I do in main() is call menuLoop(), and then the code you see takes over from there. curNum in menuLoop() keeps track of the number of elements, as you can see outputList() which I used for checking, loops while i < curNum, and loadList() didn't do anything with curNum so... yeah. To think I've been sitting with this problem for two days makes it hurt even more

EDIT: Might aswell ask while I'm at it. I'm gonna change the system("pause") crap to better stuff later, is there something in the standard library to clear the screen with instead of system("cls")?
Deleted User 101379
Profile Blog Joined August 2010
4849 Posts
April 06 2011 18:25 GMT
#892
On April 07 2011 03:16 kuresuti wrote:
Show nested quote +
On April 07 2011 03:06 buhhy wrote:
On April 07 2011 02:42 kuresuti wrote:
Okay I've made some progress. I had a menu loop running in which I call loadList(), doesn't work. But if I skip the menu loop altogether and just run loadList() in main it DOES work.

I have no clue why..... as I'm typing this I realize I'm stupid. I have a variable which keeps track of how many elements names contains, but I forgot to add the number of elements loaded in the loadList() function, all my other functions use the counter to output the array etc. etc., which happens to be zero after loadList().

I am very sorry for wasting your time

Thanks for the help though!


Paste all your code?


+ Show Spoiler [Code] +
#include "Lab3.h"
#include "func.h"

void menuLoop()
{
string names[MAX_SIZE];
//string *names = new string[MAX_SIZE];

int curNum = 0;
char input = 0;

loadList(names, "asd.txt");

while(input != '7')
{
system("cls");

cout << " *** NAMNLISTA ***\n\n 1. Lägg till namn\n 2. Skriv namnlista\n 3. Ta bort namn\n 4. Sortera\n 5. Sök\n 6. Spara\n 7. Avsluta\n\n Välj alternativ: ";
cin >> input;

switch(input)
{
case '1':
addName(names, curNum);
break;

case '2':
outputList(names, curNum);
break;

case '3':
removeName(names, curNum);
break;

case '4':
sortList(names, curNum);
break;

case '5':
searchList(names, curNum);
break;

case '6':
saveList(names, curNum, "asd.txt");
break;

case '7':

break;

default:
cout << endl;
cout << " Ogiltigt menyalternativ!\n\n";
system("pause");
break;
}

}
}

int addName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

names[curSize] = t;

curSize++;

return 0;
}

int removeName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i]
{
names[i] = "0";

if(i < curSize - 1)
{
for(int j = i; j < curSize; j++)
{
names[j] = names[j+1];
}
}

i = curSize;
}
}

names[curSize] = "0";
curSize--;

return 0;
}

int searchName(const string names[], const int curSize)
{

return 0;
}

int outputList(const string names[], const int curSize)
{
system("cls");

for(int i = 0; i < curSize; i++)
cout << names[i] << endl;

cout << endl;

system("pause");

return 0;
}

int sortList(string names[], const int curSize)
{
system("cls");

string temp[curSize];
string tmp;

for(int i = 0; i < curSize; i++)
{
temp[i] = names[i];
//strupr((char*)temp[j].c_str());

}


for(int pass = 0; pass < curSize - 1; pass++)
for(int i = 0; i < curSize - 1; i++)
if(temp[i] > temp[i + 1]
{
tmp = names[i];
names[i] = names[i+1];
names[i+1] = tmp;

tmp = temp[i];
temp[i] = temp[i+1];
temp[i+1] = tmp;
}

cout << "Listan sorterad!\n\n";
system("pause");
return 0;
}

int saveList(const string names[], const int curSize, const string fileName)
{
system("cls");
fstream t;

t.open(fileName.c_str(), ios::out);

if(t.is_open())
{
for(int i = 0; i < curSize; i++)
{
t << names[i];

if(i < curSize - 1)
t << endl;
}

cout << "Filen \"" << fileName << "\" är sparad!\n\n";
}
else
{
cout << "Kunde inte skapa filen! \n\n";
return 0;
}

t.close();
system("pause");
return 0;
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t);
names[p] = t;
p++;
}

f.close();

for(int i = 0; i < 5; i++)
cout << names[i] << endl;

system("pause");
return 0;
}

int searchList(const string names[], const int curSize)
{
system("cls");

string t;
cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i]
{
cout << "Namnet hittades!\n\nDet är på positionen " << i + 1 << " i namnlistan.\n\n";
system("pause");
return 0;
}
}

cout << "Namnet finns inte i listan!\n\n";

return 0;
}

(Most of that code is WIP)
I might aswell post all of it.

All I do in main() is call menuLoop(), and then the code you see takes over from there. curNum in menuLoop() keeps track of the number of elements, as you can see outputList() which I used for checking, loops while i < curNum, and loadList() didn't do anything with curNum so... yeah. To think I've been sitting with this problem for two days makes it hurt even more

EDIT: Might aswell ask while I'm at it. I'm gonna change the system("pause") crap to better stuff later, is there something in the standard library to clear the screen with instead of system("cls")?


Welcome to the wonderful world of debugging. The easiest mistakes are the ones that take forever to fix. I once looked 4 hours for a bug that consisted of a semicolon on the wrong line.
buhhy
Profile Joined October 2009
United States1113 Posts
April 06 2011 18:27 GMT
#893
On April 07 2011 03:25 Morfildur wrote:
Show nested quote +
On April 07 2011 03:16 kuresuti wrote:
On April 07 2011 03:06 buhhy wrote:
On April 07 2011 02:42 kuresuti wrote:
Okay I've made some progress. I had a menu loop running in which I call loadList(), doesn't work. But if I skip the menu loop altogether and just run loadList() in main it DOES work.

I have no clue why..... as I'm typing this I realize I'm stupid. I have a variable which keeps track of how many elements names contains, but I forgot to add the number of elements loaded in the loadList() function, all my other functions use the counter to output the array etc. etc., which happens to be zero after loadList().

I am very sorry for wasting your time

Thanks for the help though!


Paste all your code?


+ Show Spoiler [Code] +
#include "Lab3.h"
#include "func.h"

void menuLoop()
{
string names[MAX_SIZE];
//string *names = new string[MAX_SIZE];

int curNum = 0;
char input = 0;

loadList(names, "asd.txt");

while(input != '7')
{
system("cls");

cout << " *** NAMNLISTA ***\n\n 1. Lägg till namn\n 2. Skriv namnlista\n 3. Ta bort namn\n 4. Sortera\n 5. Sök\n 6. Spara\n 7. Avsluta\n\n Välj alternativ: ";
cin >> input;

switch(input)
{
case '1':
addName(names, curNum);
break;

case '2':
outputList(names, curNum);
break;

case '3':
removeName(names, curNum);
break;

case '4':
sortList(names, curNum);
break;

case '5':
searchList(names, curNum);
break;

case '6':
saveList(names, curNum, "asd.txt");
break;

case '7':

break;

default:
cout << endl;
cout << " Ogiltigt menyalternativ!\n\n";
system("pause");
break;
}

}
}

int addName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

names[curSize] = t;

curSize++;

return 0;
}

int removeName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i]
{
names[i] = "0";

if(i < curSize - 1)
{
for(int j = i; j < curSize; j++)
{
names[j] = names[j+1];
}
}

i = curSize;
}
}

names[curSize] = "0";
curSize--;

return 0;
}

int searchName(const string names[], const int curSize)
{

return 0;
}

int outputList(const string names[], const int curSize)
{
system("cls");

for(int i = 0; i < curSize; i++)
cout << names[i] << endl;

cout << endl;

system("pause");

return 0;
}

int sortList(string names[], const int curSize)
{
system("cls");

string temp[curSize];
string tmp;

for(int i = 0; i < curSize; i++)
{
temp[i] = names[i];
//strupr((char*)temp[j].c_str());

}


for(int pass = 0; pass < curSize - 1; pass++)
for(int i = 0; i < curSize - 1; i++)
if(temp[i] > temp[i + 1]
{
tmp = names[i];
names[i] = names[i+1];
names[i+1] = tmp;

tmp = temp[i];
temp[i] = temp[i+1];
temp[i+1] = tmp;
}

cout << "Listan sorterad!\n\n";
system("pause");
return 0;
}

int saveList(const string names[], const int curSize, const string fileName)
{
system("cls");
fstream t;

t.open(fileName.c_str(), ios::out);

if(t.is_open())
{
for(int i = 0; i < curSize; i++)
{
t << names[i];

if(i < curSize - 1)
t << endl;
}

cout << "Filen \"" << fileName << "\" är sparad!\n\n";
}
else
{
cout << "Kunde inte skapa filen! \n\n";
return 0;
}

t.close();
system("pause");
return 0;
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t);
names[p] = t;
p++;
}

f.close();

for(int i = 0; i < 5; i++)
cout << names[i] << endl;

system("pause");
return 0;
}

int searchList(const string names[], const int curSize)
{
system("cls");

string t;
cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i]
{
cout << "Namnet hittades!\n\nDet är på positionen " << i + 1 << " i namnlistan.\n\n";
system("pause");
return 0;
}
}

cout << "Namnet finns inte i listan!\n\n";

return 0;
}

(Most of that code is WIP)
I might aswell post all of it.

All I do in main() is call menuLoop(), and then the code you see takes over from there. curNum in menuLoop() keeps track of the number of elements, as you can see outputList() which I used for checking, loops while i < curNum, and loadList() didn't do anything with curNum so... yeah. To think I've been sitting with this problem for two days makes it hurt even more

EDIT: Might aswell ask while I'm at it. I'm gonna change the system("pause") crap to better stuff later, is there something in the standard library to clear the screen with instead of system("cls")?


Welcome to the wonderful world of debugging. The easiest mistakes are the ones that take forever to fix. I once looked 4 hours for a bug that consisted of a semicolon on the wrong line.


sad but true...

So, your code works correctly now?
kuresuti
Profile Blog Joined December 2009
1393 Posts
April 06 2011 18:29 GMT
#894
On April 07 2011 03:27 buhhy wrote:
Show nested quote +
On April 07 2011 03:25 Morfildur wrote:
On April 07 2011 03:16 kuresuti wrote:
On April 07 2011 03:06 buhhy wrote:
On April 07 2011 02:42 kuresuti wrote:
Okay I've made some progress. I had a menu loop running in which I call loadList(), doesn't work. But if I skip the menu loop altogether and just run loadList() in main it DOES work.

I have no clue why..... as I'm typing this I realize I'm stupid. I have a variable which keeps track of how many elements names contains, but I forgot to add the number of elements loaded in the loadList() function, all my other functions use the counter to output the array etc. etc., which happens to be zero after loadList().

I am very sorry for wasting your time

Thanks for the help though!


Paste all your code?


+ Show Spoiler [Code] +
#include "Lab3.h"
#include "func.h"

void menuLoop()
{
string names[MAX_SIZE];
//string *names = new string[MAX_SIZE];

int curNum = 0;
char input = 0;

loadList(names, "asd.txt");

while(input != '7')
{
system("cls");

cout << " *** NAMNLISTA ***\n\n 1. Lägg till namn\n 2. Skriv namnlista\n 3. Ta bort namn\n 4. Sortera\n 5. Sök\n 6. Spara\n 7. Avsluta\n\n Välj alternativ: ";
cin >> input;

switch(input)
{
case '1':
addName(names, curNum);
break;

case '2':
outputList(names, curNum);
break;

case '3':
removeName(names, curNum);
break;

case '4':
sortList(names, curNum);
break;

case '5':
searchList(names, curNum);
break;

case '6':
saveList(names, curNum, "asd.txt");
break;

case '7':

break;

default:
cout << endl;
cout << " Ogiltigt menyalternativ!\n\n";
system("pause");
break;
}

}
}

int addName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

names[curSize] = t;

curSize++;

return 0;
}

int removeName(string names[], int &curSize)
{
system("cls");

string t;

cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i]
{
names[i] = "0";

if(i < curSize - 1)
{
for(int j = i; j < curSize; j++)
{
names[j] = names[j+1];
}
}

i = curSize;
}
}

names[curSize] = "0";
curSize--;

return 0;
}

int searchName(const string names[], const int curSize)
{

return 0;
}

int outputList(const string names[], const int curSize)
{
system("cls");

for(int i = 0; i < curSize; i++)
cout << names[i] << endl;

cout << endl;

system("pause");

return 0;
}

int sortList(string names[], const int curSize)
{
system("cls");

string temp[curSize];
string tmp;

for(int i = 0; i < curSize; i++)
{
temp[i] = names[i];
//strupr((char*)temp[j].c_str());

}


for(int pass = 0; pass < curSize - 1; pass++)
for(int i = 0; i < curSize - 1; i++)
if(temp[i] > temp[i + 1]
{
tmp = names[i];
names[i] = names[i+1];
names[i+1] = tmp;

tmp = temp[i];
temp[i] = temp[i+1];
temp[i+1] = tmp;
}

cout << "Listan sorterad!\n\n";
system("pause");
return 0;
}

int saveList(const string names[], const int curSize, const string fileName)
{
system("cls");
fstream t;

t.open(fileName.c_str(), ios::out);

if(t.is_open())
{
for(int i = 0; i < curSize; i++)
{
t << names[i];

if(i < curSize - 1)
t << endl;
}

cout << "Filen \"" << fileName << "\" är sparad!\n\n";
}
else
{
cout << "Kunde inte skapa filen! \n\n";
return 0;
}

t.close();
system("pause");
return 0;
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t);
names[p] = t;
p++;
}

f.close();

for(int i = 0; i < 5; i++)
cout << names[i] << endl;

system("pause");
return 0;
}

int searchList(const string names[], const int curSize)
{
system("cls");

string t;
cin.get();

cout << "Skriv in namn: ";
getline(cin, t);

for(int i = 0; i < curSize; i++)
{
if(t == names[i]
{
cout << "Namnet hittades!\n\nDet är på positionen " << i + 1 << " i namnlistan.\n\n";
system("pause");
return 0;
}
}

cout << "Namnet finns inte i listan!\n\n";

return 0;
}

(Most of that code is WIP)
I might aswell post all of it.

All I do in main() is call menuLoop(), and then the code you see takes over from there. curNum in menuLoop() keeps track of the number of elements, as you can see outputList() which I used for checking, loops while i < curNum, and loadList() didn't do anything with curNum so... yeah. To think I've been sitting with this problem for two days makes it hurt even more

EDIT: Might aswell ask while I'm at it. I'm gonna change the system("pause") crap to better stuff later, is there something in the standard library to clear the screen with instead of system("cls")?


Welcome to the wonderful world of debugging. The easiest mistakes are the ones that take forever to fix. I once looked 4 hours for a bug that consisted of a semicolon on the wrong line.


sad but true...

So, your code works correctly now?


Perhaps not correctly, not yet at least. But it works as expected! Thanks again!
Glowbox
Profile Joined June 2010
Netherlands330 Posts
Last Edited: 2011-04-06 18:35:23
April 06 2011 18:34 GMT
#895
On April 07 2011 02:10 buhhy wrote:
Show nested quote +
On April 07 2011 02:03 Uriel_SVK wrote:

On April 06 2011 20:56 kuresuti wrote:

int main()
{
string s[MAX_SIZE];
int i = 0;
loadList(s, "asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(string names[], const string fileName)
{
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return 0;
}

I've removed some unnecessary code from there, to keep it clean. Any ideas as to what could be wrong?


ok, not a pro in c/c++, but i think the problem might be that you are not returning the value of names[]. You pass s[] to names[], you add lines to names[], but you do not return lines[] to s[].
In c# i would add ref, but I think in c/c++ it is done with pointers.

Or maybe this could work
+ Show Spoiler +


int main()
{
string s[MAX_SIZE];
int i = 0;
s = loadList("asd.txt"); // This does not want to store the file contents in s[];
}

int loadList(const string fileName)
{
string names[MAX_SIZE];
ifstream f(fileName.c_str());
int p = 0;
string t;

while(!f.eof())
{
getline(f, t); // Tested this multiple times in different ways, it seems to work.
names[p] = t; // I've checked names[p] multiple times after this, and it does store t;
p++;
}

f.close();

return names;
}



sorry if it wont help


Arrays ARE pointers in C++. Seems weird that the code doesn't work. He's not missing the reference symbol.


This is not true. They might have similar behavior but they're not the same!
(http://www.cplusplus.com/forum/articles/9/)
EscPlan9
Profile Blog Joined December 2006
United States2777 Posts
Last Edited: 2011-04-06 20:59:26
April 06 2011 20:58 GMT
#896
A brief intro before my questions...

Lately I've been concentrating more on my web development skills, which previously were behind my OOP ones. I have a solid grasp of HTML and CSS. I'm also picking up the Adobe Creative Suite (Flash, Photoshop, Premiere, etc) from projects in my Interactive Digital Media Class. However, in my free time I want to learn more about communicating with the server on the web.

Say I want to understand how to implement functions like the end-user submits information to the server, the server processes the information and queries a database I create. What languages should I go for next to better understand how to do this? At the moment my web dev track has gone like this:

HTML > CSS > JavaScript > DOM > ???


PHP, Ruby, Apache, IIS, ASP .NET, C# .NET all have been recommended for what to learn next. I've tried to hone in on PHP using Apache, but haven't gone far yet since setup has been such a pain in the ass. At the moment PHP isn't able to update Apache's httpd config file and I need to lookup how to manually do that (after taking a good amount of time researching how to get Apache working - which it now does).

I guess I have a few questions:

1) What languages should I learn next?

2) Are the options different enough that I should learn both in the end? i.e. ASP.NET vs C#.NET? PHP vs Ruby? Apache vs IIS?

3) Related, but do the different options serve different functions, or is it more of a preference thing?

4) At the moment I am using this for my PHP tutorial: http://devzone.zend.com/node/view/id/627
Because I'm having issues getting PHP properly configured, my test php file just displays its entire contents in plain text (I'm assuming that's the reason I'm not seeing the expected server response). Any suggestions for other tutorials? I didn't see any linked in OP.

I know it's a lot of questions, but I want to know more about what some of you recommend for the next steps given what I want to learn.

edit: formatting changes
Undefeated TL Tecmo Super Bowl League Champion
killanator
Profile Blog Joined January 2008
United States549 Posts
April 07 2011 05:11 GMT
#897
Does anyone have experience in TI-Basic?(the language of texas instrument graphing calculators, i have a ti-84 plus)

I want to program a few functions into my calculator to save time on the ap test(trapezoid rule, riemann sums) as well as reduce the likelihood of me entering something in wrong. What im not sure is how to ask the user for a function and use that function in the program. this is what i tried


:Input"F(X)?Y1


and got a syntax error. and even once i can store it how do i use it in the function to plug x into it? Like im trying to do a for loop for riemann sums and i want to add f(n) to a variable but I dont know how to plug x into the function. The tutorials on the internet arent very helpful, most are very basic or focused on making games.
DJ, put it back on!
EvanED
Profile Joined October 2009
United States111 Posts
Last Edited: 2011-04-07 06:27:41
April 07 2011 06:21 GMT
#898
Ooo, this should be a fun thread.

On April 07 2011 03:34 Glowbox wrote:
Show nested quote +
On April 07 2011 02:10 buhhy wrote:
Arrays ARE pointers in C++. Seems weird that the code doesn't work. He's not missing the reference symbol.


This is not true. They might have similar behavior but they're not the same!
(http://www.cplusplus.com/forum/articles/9/)


I want to expand on this, because I think that article misses a couple differences, and spends some time on stuff you probably don't care about (e.g. the fact that they assembly output differs). I'd recommend this page instead http://www.lysator.liu.se/c/c-faq/c-2.html for more. (The page talks about C, but with minor changes it applies to C++ as well.)

Arrays decay to pointers in C++, meaning there is an automatic conversion, and in some cases they are essentially synonyms (e.g. in a function parameter list), but there is a difference.

#include <iostream>
#include <typeinfo>
using namespace std;

int main() {
const char array[] = "hello world!";
const char * pointer = "hello world!";
cout << "The array says " << array << " and has a size of " << sizeof(array) << " bytes.\n";
cout << "The pointer says " << pointer << " and has a size of " << sizeof(pointer) << " bytes.\n";
cout << "The type of the array is " << typeid(array).name() << "\n";
cout << "The type of the pointer is " << typeid(pointer).name() << "\n";
if (&typeid(array) == &typeid(pointer)) {
cout << "array and pointer have the same type\n";
}
else {
cout << "array and pointer have different types\n";
}
}


Under MSVC 2008, this prints (changed to use the 64-bit compiler):
The array says hello world! and has a size of 13 bytes.
The pointer says hello world! and has a size of 8 bytes.
The type of the array is char const [13]
The type of the pointer is char const * __ptr64
array and pointer have different types

Under GCC 4.6 on Linux, this prints:
The array says hello world! and has a size of 13 bytes.
The pointer says hello world! and has a size of 8 bytes.
The type of the array is A13_c // an Array of 3 Chars
The type of the pointer is PKc // a Pointer to a Konstant Char
array and pointer have different types


A lot of the time you can pretend that arrays and pointers are the same -- but not all the time. And if your mental model is that they are, and you do enough C/C++ programming, you'll probably get bitten by that at some point.
arioch
Profile Joined May 2010
England403 Posts
April 07 2011 06:36 GMT
#899
On April 07 2011 05:58 EscPlan9 wrote:
A brief intro before my questions...

Lately I've been concentrating more on my web development skills, which previously were behind my OOP ones. I have a solid grasp of HTML and CSS. I'm also picking up the Adobe Creative Suite (Flash, Photoshop, Premiere, etc) from projects in my Interactive Digital Media Class. However, in my free time I want to learn more about communicating with the server on the web.

Say I want to understand how to implement functions like the end-user submits information to the server, the server processes the information and queries a database I create. What languages should I go for next to better understand how to do this? At the moment my web dev track has gone like this:

HTML > CSS > JavaScript > DOM > ???


PHP, Ruby, Apache, IIS, ASP .NET, C# .NET all have been recommended for what to learn next. I've tried to hone in on PHP using Apache, but haven't gone far yet since setup has been such a pain in the ass. At the moment PHP isn't able to update Apache's httpd config file and I need to lookup how to manually do that (after taking a good amount of time researching how to get Apache working - which it now does).

I guess I have a few questions:

1) What languages should I learn next?

2) Are the options different enough that I should learn both in the end? i.e. ASP.NET vs C#.NET? PHP vs Ruby? Apache vs IIS?

3) Related, but do the different options serve different functions, or is it more of a preference thing?

4) At the moment I am using this for my PHP tutorial: http://devzone.zend.com/node/view/id/627
Because I'm having issues getting PHP properly configured, my test php file just displays its entire contents in plain text (I'm assuming that's the reason I'm not seeing the expected server response). Any suggestions for other tutorials? I didn't see any linked in OP.

I know it's a lot of questions, but I want to know more about what some of you recommend for the next steps given what I want to learn.

edit: formatting changes


I work as a winform C#/Java developer so I do not have a great deal of experience with web development as a whole, but I can clarify for you on question 2. ASP.NET is a toolkit based on the CLR (Common Language Runtime) so you actually have the option of writing ASP code in any of the .NET programming languages. For future employment though you will have a lot more options if you jump in at the deep end and learn to code C# from the ground up, focusing on client server development. Your best bet is probably to pick up one of the Microsoft Press books, 70-515 is the ASP block MCTS.

Another option is to look at enterprise Java development, there is a lot of work about at the moment for people who have experience working with Spring and Hibernate.

Obviously I am being boring and looking at it from an employment point of view, but for a budding programmer it is important to start looking at what the market needs as early as you can - C# and Java EE coding jobs are currently on the rise.
Patagia
Profile Joined August 2010
United States10 Posts
April 07 2011 09:38 GMT
#900
Random question, I was wondering if any of you knew any programming problem sites such as Project Euler (http://projecteuler.net/index.php?section=problems). I really enjoy the problems on there and I was wondering if any of you knew any sites similar to that. Sorry for the slight deviation from the rest of the thread =)
Prev 1 43 44 45 46 47 1031 Next
Please log in or register to reply.
Live Events Refresh
OSC
00:00
Mid Season Playoffs #2
CranKy Ducklings102
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Nina 116
SpeCial 112
CosmosSc2 50
Vindicta 36
StarCraft: Brood War
Artosis 810
ggaemo 135
sSak 18
Icarus 5
Dota 2
NeuroSwarm168
Counter-Strike
fl0m1727
Stewie2K549
Other Games
summit1g5969
shahzam969
JimRising 486
C9.Mang0361
Day[9].tv313
SortOf158
Maynarde138
Trikslyr77
Nathanias30
RuFF_SC224
Organizations
Other Games
gamesdonequick1264
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 13 non-featured ]
StarCraft 2
• davetesta26
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Other Games
• Scarra1128
• Day9tv313
Upcoming Events
Sparkling Tuna Cup
8h 14m
Afreeca Starleague
8h 14m
Light vs Speed
Larva vs Soma
2v2
9h 14m
PiGosaur Monday
22h 14m
LiuLi Cup
1d 9h
RSL Revival
2 days
Maru vs Reynor
Cure vs TriGGeR
The PondCast
2 days
RSL Revival
3 days
Zoun vs Classic
Korean StarCraft League
4 days
BSL Open LAN 2025 - War…
4 days
[ Show More ]
RSL Revival
4 days
BSL Open LAN 2025 - War…
5 days
RSL Revival
5 days
Online Event
5 days
Wardi Open
6 days
Liquipedia Results

Completed

Proleague 2025-09-10
Chzzk MurlocKing SC1 vs SC2 Cup #2
HCC Europe

Ongoing

BSL 20 Team Wars
KCM Race Survival 2025 Season 3
BSL 21 Points
ASL Season 20
CSL 2025 AUTUMN (S18)
LASL Season 20
RSL Revival: Season 2
Maestros of the Game
FISSURE Playground #2
BLAST Open Fall 2025
BLAST Open Fall Qual
Esports World Cup 2025
BLAST Bounty Fall 2025
BLAST Bounty Fall Qual
IEM Cologne 2025
FISSURE Playground #1

Upcoming

2025 Chongqing Offline CUP
BSL World Championship of Poland 2025
IPSL Winter 2025-26
BSL Season 21
SC4ALL: Brood War
BSL 21 Team A
Stellar Fest
SC4ALL: StarCraft II
EC S1
ESL Impact League Season 8
SL Budapest Major 2025
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
MESA Nomadic Masters Fall
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22
StarSeries Fall 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.