• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 11:22
CET 17:22
KST 01:22
  • 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
Behind the Blue - Team Liquid History Book9Clem wins HomeStory Cup 289HomeStory Cup 28 - Info & Preview13Rongyi Cup S3 - Preview & Info6herO wins SC2 All-Star Invitational14
Community News
PIG STY FESTIVAL 7.0! (19 Feb - 1 Mar)9Weekly Cups (Jan 26-Feb 1): herO, Clem, ByuN, Classic win2RSL Season 4 announced for March-April7Weekly Cups (Jan 19-25): Bunny, Trigger, MaxPax win3Weekly Cups (Jan 12-18): herO, MaxPax, Solar win0
StarCraft 2
General
Behind the Blue - Team Liquid History Book How do you think the 5.0.15 balance patch (Oct 2025) for StarCraft II has affected the game? Rongyi Cup S3 - Preview & Info Clem wins HomeStory Cup 28 HomeStory Cup 28 - Info & Preview
Tourneys
PIG STY FESTIVAL 7.0! (19 Feb - 1 Mar) WardiTV Mondays $21,000 Rongyi Cup Season 3 announced (Jan 22-Feb 7) Sparkling Tuna Cup - Weekly Open Tournament $5,000 WardiTV Winter Championship 2026
Strategy
Custom Maps
Map Editor closed ? [A] Starcraft Sound Mod
External Content
Mutation # 512 Overclocked The PondCast: SC2 News & Results Mutation # 511 Temple of Rebirth Mutation # 510 Safety Violation
Brood War
General
[ASL21] Potential Map Candidates BW General Discussion Gypsy to Korea BGH Auto Balance -> http://bghmmr.eu/ Liquipedia.net NEEDS editors for Brood War
Tourneys
[Megathread] Daily Proleagues Escore Tournament StarCraft Season 1 Small VOD Thread 2.0 KCM Race Survival 2026 Season 1
Strategy
Zealot bombing is no longer popular? Simple Questions, Simple Answers Current Meta Soma's 9 hatch build from ASL Game 2
Other Games
General Games
ZeroSpace Megathread Diablo 2 thread Battle Aces/David Kim RTS Megathread EVE Corporation Nintendo Switch Thread
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread YouTube Thread The Games Industry And ATVI Things Aren’t Peaceful in Palestine
Fan Clubs
The herO Fan Club! The IdrA Fan Club
Media & Entertainment
[Manga] One Piece Anime Discussion Thread
Sports
2024 - 2026 Football Thread
World Cup 2022
Tech Support
TL Community
The Automated Ban List
Blogs
Play, Watch, Drink: Esports …
TrAiDoS
My 2025 Magic: The Gathering…
DARKING
Life Update and thoughts.
FuDDx
How do archons sleep?
8882
StarCraft improvement
iopq
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1432 users

C++ noob question

Blogs > eMbrace
Post a Reply
1 2 Next All
eMbrace
Profile Blog Joined January 2009
United States1300 Posts
Last Edited: 2009-10-17 02:49:29
October 17 2009 02:48 GMT
#1
I've been doing quite well in my class, but I've finally hit something that I can't figure out.

Basically, we have to decode a text file back to english (Caesar Cipher), and we have to run the text file through the our progame via the Command Prompt.

I've finished writing my code, but I can't get it to feed me back any output -- wrong or right.

I don't get an error or anything just this:

(checking to see if files I need are there, they are)
+ Show Spoiler +
[image loading]


(running the txt file through my program, maybe?)
+ Show Spoiler +
[image loading]


As you can see, nothing happens, and no errors appear either.

thats how I was instructed to do it and it's worked once before the other day, but now I finished writing my code and I can't test it =/

If you feel like taking the time, you can look at that as well:

+ Show Spoiler +
#include <iostream>
#include <iomanip>
#include <math.h>



using namespace std;


char reverseCaesar( char ch );
char convPunct( char ch );
char convDigit( char ch );
char convRest(char ch);
//***************************************************************************************************************************
int main()
{
char ch;
int change;


cin >> ch;

while ( cin )
{
char change;
if( isalpha(ch) )
{
change = reverseCaesar(ch);

}
else if (ispunct(ch) )
{
change = convPunct(ch);

}
else if (isdigit(ch) )
{
change = convDigit(ch);

}

else
change = convRest(ch);

cin >> ch;
}


system ("pause");
return 0;
}

//***************************************************************************************************************************

char reverseCaesar( char ch )
{
int i;

if (ch <= 47 && ch > 44)
{
i = (int)ch + 23;
}
else if (ch <=99 && ch > 96)
{
i = (int)ch +23;
}
else

i = (int)ch - 3;

return char(i);
}

char convPunct( char ch )
{
switch(ch)
{
case ',': return '0';
break;
case '.': return '1';
break;
case '$': return '2';
break;
case '&': return '3';
break;
case '%': return '4';
break;
case '*': return '5';
break;
case '(': return '6';
break;
case ')': return '7';
break;
case '?': return '8';
break;
case '!': return '9';

default: return ch;

}
}

char convDigit( char ch )
{
switch(ch)
{
case '0': return '!';
break;
case '1': return ',';
break;
case '2': return ')';
break;
case '3': return '(';
break;
case '4': return '?';
break;
case '5': return '-';
break;
case '6': return '&';
break;
case '7': return '$';
break;
case '8': return '.';
break;
case '9': return '+';
break;

default: return ch;

}
}

char convRest(char ch)
{
if(ch==21)
ch='\n';
else if(ch==22)
ch=' ';
else
ch=ch;

return ch;
}


I haven't added documentation, but it's fairly straight forward -- taking the characters from the txt file and decoding them (we had to write and use our own functions as well).

I'm willing to bet my program wouldn't work even if I could see it, but i'd at least like to try.

any help would appreciated, it's due in a couple of hours =)

if I have to i'll just submit and see if I can edit and resubmit tomorrow .

thanks.







*
Shade692003
Profile Joined August 2005
Canada702 Posts
October 17 2009 02:58 GMT
#2
been pretty long since I've done anything like coding or w/e, but if I understand correctly you enter your text file path as a parameter for your program? shouldn't there be parameters in your main then?
I hate the post below mine because it feels War3-ish.
DrTJEckleburg
Profile Blog Joined February 2009
United States1080 Posts
October 17 2009 02:58 GMT
#3
I have no help for your question, but I do believe that your reign at the top of LB will end after you bet on MBC over KT Rolster.
Im pretty good at whistling with my hands, especially when Im holding a whistle.
paper
Profile Blog Joined September 2004
13196 Posts
Last Edited: 2009-10-17 02:59:19
October 17 2009 02:59 GMT
#4
[image loading]


voting for MBC is your problem


edit: YOU GUYS ARE TOO FAST
Hates Fun🤔
keV.
Profile Blog Joined February 2009
United States3214 Posts
Last Edited: 2009-10-17 03:04:04
October 17 2009 03:00 GMT
#5
Wait a minute something isn't right here.


I'm pretty sure you can't read a txt file with cin, while expecting a char.

I don't know the details of your assignment, but do you take the file you are reading from as a parameter? If you do, then you definitely need to take some command line arguments. If not, then you can just open the file in your main or accept it by input string, and read char by char until the end of file.
"brevity is the soul of wit" - William Shakesman
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
Last Edited: 2009-10-17 03:05:10
October 17 2009 03:01 GMT
#6
I'm a little confused about what you're asking, but I think you are asking why your program doesn't "do" anything when you run it. Okay, so given that...

Your second screenshot shows you running the program with the file as input correctly.

Now, your program doesn't produce any output on the command prompt because you aren't telling it to print anything. Use cout if you want to print messages to the command prompt. If you are trying to create a new file that contains the translation of the original file, you'll need to use an ofstream and output to that, or use "> some_file" when running the program and print to some_file using cout.

eMbrace
Profile Blog Joined January 2009
United States1300 Posts
October 17 2009 03:01 GMT
#7
On October 17 2009 11:58 DrTJEckleburg wrote:
I have no help for your question, but I do believe that your reign at the top of LB will end after you bet on MBC over KT Rolster.


i'm on top for a reason
AcrossFiveJulys
Profile Blog Joined September 2005
United States3612 Posts
October 17 2009 03:03 GMT
#8
On October 17 2009 12:00 keV. wrote:
Wait a minute something isn't right here.


I'm pretty sure you can't read a txt file with cin, while expecting a char.


Yes you can. Since he's using the "<" operator when running the program, it changes the stdin stream (which is what cin uses) to refer to the file instead of user input.
Shade692003
Profile Joined August 2005
Canada702 Posts
October 17 2009 03:03 GMT
#9
On October 17 2009 12:00 keV. wrote:
Wait a minute something isn't right here.


I'm pretty sure you can't read a txt file with cin, while expecting a char.



I think the cin are for reading the characters in the text files, once they are read he changes them according to their values. could be wrong tho.

Anyhow there is no output like the other guy said
I hate the post below mine because it feels War3-ish.
eMbrace
Profile Blog Joined January 2009
United States1300 Posts
October 17 2009 03:05 GMT
#10
On October 17 2009 12:01 AcrossFiveJulys wrote:
I'm a little confused about what you're asking, but I think you are asking why your program doesn't "do" anything when you run it. Okay, so given that...

Your second screenshot shows you running the program with the file as input correctly.

Now, your program doesn't produce any output on the command prompt because you aren't telling it to print anything. Use cout if you want to print messages to the command prompt. If you are trying to create a new file that contains the translation of the original file, you'll need to use an ofstream and output to that.



to put it into a new file, they taught us this format

program < input.txt > new.txt

i get a new file with nothing in it =/
Shade692003
Profile Joined August 2005
Canada702 Posts
Last Edited: 2009-10-17 03:06:46
October 17 2009 03:05 GMT
#11
So hmm, shoudn't you cout that ''change'' variable?

Edit: Try to cout the change variable at the end of the while loop, might cout the value into the new text file.
I hate the post below mine because it feels War3-ish.
keV.
Profile Blog Joined February 2009
United States3214 Posts
Last Edited: 2009-10-17 03:06:53
October 17 2009 03:05 GMT
#12
On October 17 2009 12:03 AcrossFiveJulys wrote:
Show nested quote +
On October 17 2009 12:00 keV. wrote:
Wait a minute something isn't right here.


I'm pretty sure you can't read a txt file with cin, while expecting a char.


Yes you can. Since he's using the "<" operator when running the program, it changes the stdin stream (which is what cin uses) to refer to the file instead of user input.


I don't think reading from a file without a file handle is a good idea.

its sad how long its been since I've worked with simple I/O input...
"brevity is the soul of wit" - William Shakesman
vAltyR
Profile Blog Joined July 2008
United States581 Posts
Last Edited: 2009-10-17 03:08:40
October 17 2009 03:05 GMT
#13
Commenting is your best friend. Especially when you're asking others to help with your program. I didn't think it'd make that much difference, but I've had time where I look back on code and think "wtf was I doing here again?"

Do you need to separate it into functions like that? Sometimes it gets confusing debugging so many functions, especially when the code isn't your own.


EDIT: Wait a second... You're reading this from a file, right? You have nothing set up for file IO.
내 호버크라프트는 장어로 가득 차 있어요
Ironson
Profile Joined February 2008
20 Posts
October 17 2009 03:06 GMT
#14
The program is well formed, but it doesn't output anything! You need to write the output to "cout" and stream it into a file. Your command would become something like: pgm6 < input.txt > output.txt
keV.
Profile Blog Joined February 2009
United States3214 Posts
October 17 2009 03:07 GMT
#15
Like whats been said in this thread, you need to either rewrite the original file as you read char by char or you need to print the output to a a new file or screen.
"brevity is the soul of wit" - William Shakesman
eMbrace
Profile Blog Joined January 2009
United States1300 Posts
Last Edited: 2009-10-17 03:09:14
October 17 2009 03:08 GMT
#16
On October 17 2009 12:06 Ironson wrote:
The program is well formed, but it doesn't output anything! You need to write the output to "cout" and stream it into a file. Your command would become something like: pgm6 < input.txt > output.txt


ok right, but how exactly do I make my program cout all the decoded characters at once after the loop is over?

and sorry for the code with out comments -- we did have to write functions to use in the main, i guess it's a way of them making us learn how they work.



Ironson
Profile Joined February 2008
20 Posts
October 17 2009 03:09 GMT
#17
Before your second "cin >> ch;", place "cout << change;".
eMbrace
Profile Blog Joined January 2009
United States1300 Posts
Last Edited: 2009-10-17 03:14:24
October 17 2009 03:13 GMT
#18
On October 17 2009 12:09 Ironson wrote:
Before your second "cin >> ch;", place "cout << change;".



woah, it worked.

got all the decoded next in a new file.

thanks a lot everyone -- you may have saved my A in this class.

now I can watch MBC just roll over KT tonight
keV.
Profile Blog Joined February 2009
United States3214 Posts
October 17 2009 03:13 GMT
#19
this should give you simple error checking output.

+ Show Spoiler +

int main()
{
char ch;
int change;


cin >> ch;

while ( cin )
{
char change;
if( isalpha(ch) )
{
change = reverseCaesar(ch);


}
else if (ispunct(ch) )
{
change = convPunct(ch);


}
else if (isdigit(ch) )
{
change = convDigit(ch);


}

else
change = convRest(ch);
//output goes here

cin >> ch;
}


system ("pause");
return 0;
}

"brevity is the soul of wit" - William Shakesman
eMbrace
Profile Blog Joined January 2009
United States1300 Posts
October 17 2009 03:17 GMT
#20
On October 17 2009 12:13 keV. wrote:
this should give you simple error checking output.

+ Show Spoiler +

int main()
{
char ch;
int change;


cin >> ch;

while ( cin )
{
char change;
if( isalpha(ch) )
{
change = reverseCaesar(ch);


}
else if (ispunct(ch) )
{
change = convPunct(ch);


}
else if (isdigit(ch) )
{
change = convDigit(ch);


}

else
change = convRest(ch);
//output goes here

cin >> ch;
}


system ("pause");
return 0;
}



thanks a bunch kev
1 2 Next All
Please log in or register to reply.
Live Events Refresh
Next event in 38m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Rex 122
StarCraft: Brood War
Calm 4190
Bisu 2387
Flash 1780
firebathero 1191
Larva 729
Mini 490
Hyuk 434
ZerO 354
EffOrt 337
actioN 267
[ Show more ]
Soulkey 163
ggaemo 156
Rush 154
Sharp 127
Mong 116
hero 114
Bale 58
PianO 56
Backho 52
Mind 44
Free 32
Movie 28
Aegong 27
Shinee 22
Rock 21
Shuttle 20
JulyZerg 15
sorry 13
soO 12
Shine 11
Dota 2
Gorgc3531
qojqva1778
Dendi604
420jenkins150
XcaliburYe75
Counter-Strike
allub509
markeloff164
adren_tv129
oskar63
Super Smash Bros
Mew2King135
Other Games
singsing1746
hiko1012
Beastyqt406
ArmadaUGS248
crisheroes221
Hui .155
Liquid`VortiX145
Trikslyr35
ZerO(Twitch)23
MindelVK7
Organizations
StarCraft 2
WardiTV1134
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 16 non-featured ]
StarCraft 2
• LUISG 23
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV333
League of Legends
• Nemesis16006
• Jankos2862
• TFBlade1108
• Stunt312
Upcoming Events
Monday Night Weeklies
38m
Replay Cast
7h 38m
Sparkling Tuna Cup
17h 38m
LiuLi Cup
18h 38m
Reynor vs Creator
Maru vs Lambo
PiGosaur Monday
1d 8h
Replay Cast
1d 16h
LiuLi Cup
1d 18h
Clem vs Rogue
SHIN vs Cyan
The PondCast
2 days
KCM Race Survival
2 days
LiuLi Cup
2 days
Scarlett vs TriGGeR
ByuN vs herO
[ Show More ]
Replay Cast
3 days
Online Event
3 days
LiuLi Cup
3 days
Serral vs Zoun
Cure vs Classic
RSL Revival
4 days
RSL Revival
4 days
LiuLi Cup
4 days
uThermal 2v2 Circuit
4 days
RSL Revival
5 days
Replay Cast
5 days
Sparkling Tuna Cup
5 days
LiuLi Cup
5 days
Replay Cast
6 days
Replay Cast
6 days
LiuLi Cup
6 days
Wardi Open
6 days
Liquipedia Results

Completed

CSL 2025 WINTER (S19)
Rongyi Cup S3
Underdog Cup #3

Ongoing

KCM Race Survival 2026 Season 1
Nations Cup 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 2025
SL Budapest Major 2025
ESL Impact League Season 8

Upcoming

Escore Tournament S1: W8
Acropolis #4
IPSL Spring 2026
HSC XXIX
uThermal 2v2 2026 Main Event
Bellum Gens Elite Stara Zagora 2026
RSL Revival: Season 4
WardiTV Winter 2026
LiuLi Cup: 2025 Grand Finals
CCT Season 3 Global Finals
FISSURE Playground #3
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League Season 23
ESL Pro League Season 23
PGL Cluj-Napoca 2026
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 © 2026 TLnet. All Rights Reserved.